1. 程式人生 > >【Maven問題】應用Maven構建專案遇到的各種問題總結

【Maven問題】應用Maven構建專案遇到的各種問題總結

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-oauth2</artifactId> <version>${openam.version}</version> </dependency>
  • 問題解決:好像是無法解析${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. 錯誤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. 錯誤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的配置。
    1. 環境變數JDK(如果安裝了多個jdk環境的情況)、專案引入的Lib包、Java Compiler、Java Facets
    2. eclipse的Navigator檢視對應工程下的.settings資料夾的諸多檔案:如org.eclipse.jdt.core.prefs檔案中的配置
    3. 對於Maven專案還有:pom.xml中配置的編譯環境、maven根目錄中setting.xml檔案中配置的環境

12. Maven本地倉庫中的jar包名字後有lastUpdate

  • 原因:maven從nexsu上面拉jar包,有時會因為網路問題導致下不了包,這時候資料夾內會個*lastUpdated.properties的檔案,而這檔案的存在會導致下次伺服器不會去下載這個包,這時候要刪掉這個檔案才能讓maven再次去下載。以下分別是windows下和linux下的批量刪除該檔案命令:
  • 解決方案:
    1. windows下的命令*del D:\HwRepository\maven_repository.m2\repository*lastUpdate /a/s
    2. linux下的命令:find ./ -name “*lastUpdated” | xargs -i -t rm {} -rf
    3. 刪除少於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。圖示如下:
    這裡寫圖片描述