【Maven問題】應用Maven構建專案遇到的各種問題總結
阿新 • • 發佈:2019-01-11
2. 補充Maven配置本地倉庫
**配置**:windows–>preferences–>Maven–>UserSetting **參考文件**:3. 新建Maven工程,不顯示原始檔包
- 現象:eclipse建立maevn web專案,在選擇maven_archetype_web原型後,預設只有src/main/resources這個Source Floder
- 解決辦法:在專案上右鍵選擇properties,然後點選java build path,在Librarys下,編輯JRE System Library,選擇workspace default jre就可以了
4. Maven顯示紅叉,pom.xml檔案內沒有報錯,Problems中顯示:maven missing artifact
- 問題:倉庫中沒有找到對應的jar包檔案
- 解決辦法:可以配置多個倉庫,遠端和本地的,(可以參考部落格其它內容)
5. Maven中ArtifactDescriptorException的解決方法
出現該問題原因:在Maven工程中的pom.xml中引入以下內容:
<dependency> <groupId>org.forgerock.openam</groupId> <artifactId
- 問題解決:好像是無法解析
${openam.version}
,將其改為12.0.0就可以了,難道Maven不支援${openam.version}
這種寫法?可我是在github中直接clone過來的呀(看來Maven還要好好學習呀)
6. Maven-web工程報錯:Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
7. ★★Maven工程:problems中報如下錯誤,且package Explorer檢視下工程中圖示有小紅叉、但工程下的檔案沒有顯示紅叉
錯誤提示
- 錯誤1:Description Resource Path Location Type Cannot change version of project facet Dynamic Web Module to 3.0. shiro_learn1 line 1 Maven Java EE Configuration Problem
- 錯誤2:Description Resource Path Location Type One or more constraints have not been satisfied. shiro_learn1 line 1 Maven Java EE Configuration Problem
解決方法
第一步:參照下面的參考文件,對自己工程中的相關文件進行修改
第二步:★右鍵專案 > Maven > Update Project Configuration。OK完美解決- 問題
參考文件1和參考文件2兩個文件中說得內容有點不同。即:org.eclipse.wst.common.component 檔案的”project-version”是否要改,暫時沒有系統學習Maven,所以這個問題只能暫時放在這裡了,如果有理解具體意義,方便的話告知一下嘍。
8. ★★Maven工程右鍵進入Maven > Project Facets > Dynamic Web Module 改為3.0報錯:Cannot change version of project facet Dynamic web module to 3.0
- 解決方案:
在maven工程中引入本地jar包或安裝本地jar包到本地倉庫。引入本地jar包:假設引入本地C:\Users\yangping\Desktop\a\下的IKAnalyzer3.2.8.jar包,則在pom.xml中配置依賴如下:
<dependency>
<groupId>org.wltea</groupId>
<artifactId>IKAnalyzer</artifactId>
<version>3.2.8</version> <systemPath>C:\Users\yangping\Desktop\a\IKAnalyzer3.2.8.jar</systemPath>
</dependency>
9. 安裝本地jar包到本地倉庫
第一步:將要安裝的jar包拷貝到倉庫相應目錄下並在該目錄下建立hw-openam-restlet-extension-0.0.1.pom
<?xml version="1.0"encoding="UTF-8"?>
<projectxsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>openam</groupId>
<artifactId>hw-openam-restlet-extension</artifactId>
<version>0.0.1</version>
<description>Hw Local openam Repository</description>
</project>
第二步:開啟cmd ,進入到F:\bx_maven2.m2\repository\com\myxmlbean\customerXmlBean\2.6.0資料夾,執行下面命令如下命令:
mvn install:install-file -Dfile=chw-openam-restlet-extension-0.0.1.jar -DgroupId=openam -DartifactId=hw-openam-restlet-extension -Dversion=0.0.1 -Dpackaging=jar
10. Maven工程:Non-resolvable parent POM: Failure to find
11.異常:UnsupportedClassVersionError: Unsupported major.minor version 51.0
- 分析原因:jdk版本不對,對於java程式設計師來講這是個永恆的話題。多次被它整得無可奈何。下面我列舉出來的一些常見配置jdk的配置。
- 環境變數JDK(如果安裝了多個jdk環境的情況)、專案引入的Lib包、Java Compiler、Java Facets
- eclipse的Navigator檢視對應工程下的.settings資料夾的諸多檔案:如org.eclipse.jdt.core.prefs檔案中的配置
- 對於Maven專案還有:pom.xml中配置的編譯環境、maven根目錄中setting.xml檔案中配置的環境
12. Maven本地倉庫中的jar包名字後有lastUpdate
- 原因:maven從nexsu上面拉jar包,有時會因為網路問題導致下不了包,這時候資料夾內會個*lastUpdated.properties的檔案,而這檔案的存在會導致下次伺服器不會去下載這個包,這時候要刪掉這個檔案才能讓maven再次去下載。以下分別是windows下和linux下的批量刪除該檔案命令:
- 解決方案:
- windows下的命令:*del D:\HwRepository\maven_repository.m2\repository*lastUpdate /a/s
- linux下的命令:find ./ -name “*lastUpdated” | xargs -i -t rm {} -rf
- 刪除少於10k的jar:find ./ -size -10k -name “.jar” | xargs -i -t rm {} -rf
13. Maven執行報錯:-Dmaven.multiModuleProjectDirectory system propery is not set.
- 原因:Maven環境配置錯誤,應該設一個環境變數M2_HOME指向你的maven安裝目錄
- 解決方式:Window->Preference->Java->Installed JREs->Edit。在Default VM arguments中設定-Dmaven.multiModuleProjectDirectory=$M2_HOME。圖示如下: