首頁 > 軟體

解決maven打包失敗:程式包xxxx不存在問題

2022-03-08 13:02:25

用Maven引入本地jar包這種做法非常不合理,很容易導致團隊jar包混亂,最好嘗試搭建私服解決。

1.問題實質

Maven倉庫jar包下載失敗或專案引入本地jar包Maven沒有對應進行設定

2.問題原因

(1)因網路或其他原因導致Maven下載jar包到本地倉庫失敗

(2)專案引入本地jar包,只在編譯器裡進行了設定而沒有在Maven中進行設定

3.解決步驟

(1)檢視對應出錯jar包的本地Maven倉庫jar包是否下載完整

如果如上圖所示將檔案刪掉重新下載即可。

(2)如果出現在編譯器中可以找到jar包,但是用Maven打包報錯:

就要檢視一下專案是否引入本地jar包但Maven沒有對其進行設定。

解決方案1

找到存放第三方jar包資料夾 (例如src/main/webapp/WEB-INF/lib)右鍵AddasLibrary加入專案執行庫:

然後設定Maven打包外掛掃描額外jar包

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <compilerArgs>
            <arg>-verbose</arg>
            <arg>-Xlint:unchecked</arg>
            <arg>-Xlint:deprecation</arg>
            <arg>-bootclasspath</arg>
            <arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg>
            <arg>-extdirs</arg>
            <arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg>
        </compilerArgs>
    </configuration>
</plugin>

其中${project.basedir}為專案根結點

圖片引自:https://www.jb51.net/article/240010.htm,此方法多人嘗試成功但筆者沒有解決。

解決方案2

修改pom檔案,引入依賴並且將scope設定為system

設定Maven打包外掛

此方法親測可行,但筆者引入的本地jar數量太多,一個一個寫估計會累死。

解決方案3

將jar包安裝至本地倉庫後使用pom檔案直接引入,進入需要引入的jar目錄,執行以下命令

mvn install:install-file -Dfile=druid-1.1.4.jar -DgroupId=com.alibaba -DartifactId=druid -Dversion=1.1.4 -Dpackaging=jar

執行後在本地倉庫中看到如下檔案,說明安裝成功

此方法親測可行,理由同上,引入本地jar太多。

解決方案4

哪個模組找不到jar包就單獨rebuild一下這個model,注意rebuild之後不要用maven的clean

rebuild完成之後再重新install

簡單粗暴,方便快捷,非常適合維護老專案。新專案就別這麼搞了,老老實實建私服吧。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com