【maven詳解-打包】maven打包上傳jar至私服nexus


一、初學maven,使用命令打包方便快捷,對於有依賴關系的maven項目,先打被依賴的項目,再打原項目:

1、dos命令cmd

2、進入項目的pom.xml根目錄

3、運行:

  mvn clean 清除以前產生的項目

  mvn install 打包maven項目

4、手動添加jar至私服,登陸nexus:

  

二、maven打包遇到的一些問題:

1、Fatal error compiling: 無效的目 標版本: 1.7 -> [Help 1]

   因為是在cmd中執行,然后maven依賴jdk,我的環境變量中將JAVA_HOME寫死,指導了jdk1.6版本。而這個項目需要1.7版本,

本地環境JDK1.6版本:

   

解決辦法:在POM.xml文件的編譯插件中屬性

1    <plugin>  
2            <artifactId>maven-compiler-plugin</artifactId>  
3            <version>3.1</version>  
4            <configuration>  
5                  <source>1.7</source>  
6                  <target>1.7</target>  
7            </configuration>  
8    </plugin>  

 

2、執行maven clean如下警告:

  [WARNING] 'parent.relativePath' points at com.cncrowd.tech.inf:inf-base instead of com.common.item.root:common-root, please verify your project structure @ line 3, column 13

意思是找不到common-root這個模塊……因為maven不知道common-root模塊存在的位置才會導致警告信息的出現,解決辦法是手動指定common-root模塊的位置,所以最終的解決辦法是在parent標簽中加入:

<relativePath>../parent/pom.xml</relativePath>

解決辦法:

<parent>
    <groupId>com.common.base</groupId>
    <artifactId>common-base</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../parent/pom.xml</relativePath>
</parent>

 

3、執行maven clean如下警告:

[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ com.common.item.pom:common-pom:0.0.1, D:\Maven\repository\com\common\item\pom\common-pom\0.0.1\common-pom-0.0.1.pom, line 72, column 12

警告原因是maven3以上需要知道maven-source-plugin的版本號

source插件打包同時生成源碼

解決辦法:

<plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-source-plugin</artifactId>  
        <version>2.2.1</version>  
        <executions>  
               <execution> 
                	<phase>package</phase>                        
                        <goals>  
                        <goal>jar-no-fork</goal>  
                        </goals>  
              </execution>  
         </executions>  
 </plugin>

 執行 mvn install,maven會自動將source install到repository 。

 執行 mvn deploy,maven會自動將source deploy到remote-repository 。

 執行 mvn source:jar,單獨打包源碼。

 

4、執行maven clean如下警告:

[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-site-plugin is missing. @ com.common.item.pom:common-pom:0.0.1, D:\Maven\repository\com\common\item\pom\common-pom\0.0.1\common-pom-0.0.1.pom, line 111, column 12

maven-site-plugin是一個負責為Java項目生成靜態HTML網站的插件。這個插件非常的有用,里面可以嵌入各種插件,比如用來對代碼檢查bug的findbugs,檢查代碼風格的checkstyle,生成testng測試報告的surefire

 

5、執行maven clean如下警告:

[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:cobertura-maven-plugin is missing. @ com.common.item.pom:common-pom:0.0.1, D:\Maven\repository\com\common\item\pom\common-pom\0.0.1\common-pom-0.0.1.pom, line 93, column 12

cobertura-maven-plugin提供單元測試整體覆蓋率以及分支覆蓋率的統計工具

解決辦法如下:

<plugins>  
    <plugin>  
           <groupId>org.codehaus.mojo</groupId>  
           <artifactId>cobertura-maven-plugin</artifactId>  
           <version>2.5.1</version>  
    </plugin>  
</plugins> 

 

6、執行maven install如下錯誤:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project cncrowd-service: Compilation failure
[ERROR] E:\cncrowd_workspace\cncrowd-service\src\main\java\com\cncrowd\mobile\service\impl\FundServiceImpl.java:[189,39] 無法確定 <T>T 的類型參數;對於上限為 int,java.lang.Object 的類型變量 T,不存在唯一最大實例

問題原因:   

用Maven編譯,jdk版本已經指定為1.6版,在本地mavan編譯打包也一切正常。在maven打包服務器上打包就會出以上的異常信息。發現打包服務器上的jdk版本是jdk1.6.0_16版本,經過查找相關資料確認,該問題是jdk1.6.0_16版本一個bug導致的,這是一個確認的錯誤:錯誤號:6468354,具體錯誤原因可以查看:https://bugs.openjdk.java.net/browse/JDK-6468354

解決辦法:

1. 在返回的地方加強制類型轉換,可以臨時繞過該問題

2. 升級jdk版本至新版本

 

7、執行maven install如下警告:

[WARNING] \cncrowd_workspace\common-deploy\common-util\src\test\java\com\woyo\pay\app\common\security\RSAHelper.java:[9,15] 警告:sun.misc.BASE64Decoder 是 Sun的專用 API,可能會在未來版本中刪除

只需要將pom.xml 中maven插件的版本修改一下即可~ 用2.3.2以上的版本哦.

解決辦法如下:

1  <plugin>
2        <groupId>org.apache.maven.plugins</groupId>
3        <artifactId>maven-compiler-plugin</artifactId>
4        <version>2.3.2</version>
5        <configuration>
6            <source>1.6</source>
7            <target>1.6</target>
8        </configuration>
9 </plugin>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM