【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>

 

posted @ 2015-04-24 21:21  会开窗的金莲  阅读(6286)  评论(0编辑  收藏  举报