釋出聚合專案-Maven 錯誤找不到符號問題
我遇到的是第三種情況:
之前釋出專案,一直不知道為什麼我釋出的專案裡缺少core,core-utils的jar包,在這篇文章裡找到了答案,聚合專案每次maven clean之後,要將依賴的其他專案打包,並在本專案中點選pom檔案,重新新增依賴的其他專案的jar包,然後maven install就成功。看看你的target下編譯的專案下,已經有了你需要的其他專案的jar包,(比如我在pc中需要的core,core-utils都有了)
總結:
之前不知道聚合專案要這樣操作,只知道少jar包,都是手動新增的,這次終於找到了解決這個問題的正解。
Maven 錯誤找不到符號問題,通常有三種原因:
1. 可能專案編碼格式不統一。
2. 可能專案編碼使用的JDK版本不統一。
3. pom依賴問題,這種依賴可能是沒有新增包的依賴,如果是聚合專案可能是沒有新增其他模組的依賴,或者是添加了其它模組的依賴,但是沒有將依賴的模組打包到本地倉庫等。
當碰到maven錯誤:找不到符號問題時,通常第一反應應該是執行eclipse的Project -> Clean … -> Clean all projects,然後再執行maven clean,將專案清理一下,然後再試試,如果還是不能解決接著往下看。
如果是第一個問題:專案編碼格式不統一
可以在pom.xml檔案中加上這樣的配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId> maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration >
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
將專案編碼設定成UTF-8,但是要注意source和target版本,下面會說
如果是第二個問題:專案編碼使用的JDK版本不統一
首先檢車一下pom.xml檔案設定的jdk版本,就是上面這幾行程式碼中的encoding,source指明支援的jdk版本,target指明專案打包後的jdk版本。
檢視專案本身的jdk版本,點選專案右鍵->build path->configure build path… ,然後設定專案的jdk版本。
再看看編譯器的版本,通常這個版本都是預設與你專案設定的jdk版本一致,但是最好還是檢查一下點選專案右鍵properties->java compiler
最後如果你是web專案,檢查一下tomcat的版本,點選window->preferences->server->runtime environment
實際上檢查版本主要還是前面兩步,一個是pom.xml配置,一個是專案本身設定的jdk版本,最後兩個實際上可以不用檢查,編譯版本通常都是和你專案本身設定的jdk版本預設一致,而tomcat的jdk版本設定不正確,出現的問題不會是符號錯誤。(第一次開發maven web專案時就是jdk設定得不正確,結果專案啟動之後,開啟瀏覽器登陸進去之後就是一些錯誤異常,當時使用的是jre,沒有使用jdk,這裡提醒大家做開發時最好使用jdk不要使用jre,有些專案在jre環境下是會出現問題的,而jdk中存在一些jre沒有的開發工具)。
如果是第三種情況:Pom依賴問題
那就要仔細檢查了,maven麻煩就麻煩在pom檔案的配置,和它的一些依賴關係。最簡單的情況就是你沒有為相應的jar包配置依賴,這種情況只要在pom.xml中新增相應jar包依賴就可以了,如果是聚合專案的話可能是你這個專案依賴其它的專案,那就要在你這專案pom.xml中配置其它專案的依賴。同時在編譯這個專案前,要將你依賴的其它專案打包到本地倉庫,不然這個依賴是無效的。
maven 錯誤找不到符號這個問題,大體上就是上面幾種情況,這篇文章只能提供一種參考,基於以上三種情況而衍生出來的其它情況也會導致錯誤找不到符號這個問題,這句需要大傢伙自己慢慢查找了。