maven打包相关

上一篇 / 下一篇  2020-11-26 15:38:37 / 个人分类:java


系统环境:win10  代码管理工具:git
前置:
1.通过git工具将代码拉至本地
2.maven环境已配置

一、MAVEN常用打包命令
mvn clean 会把原来target目录给删掉重新生成。
mvn install 安装当前工程的输出文件到本地仓库,然后打包
mvn clean install 先删除target文件夹 ,然后打包到target

1、Maven打包跳过测试的命令
在使用mvn package进行编译/打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:
 -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
 -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

类似的 跳过doc生成
  -Dmaven.javadoc.skip=true

2、打包时注意:
  2.1)当mvn仓库里缺少jar包,同时又从中央仓库自动下载不下来的时候,就需要自己下载jar包然后放仓库里了,

但是有时候只是简单的把jar和source放仓库的文件夹下,并不管用,这个时候你可以用命令把jar把打进去:
mvn install:install-file -Dfile=D:\xxx.jar  -DgroupId=commons-dbcp -DartifactId= commons-dbcp -Dversion= 1.4 -Dpackaging=jar
-Dfile 是存在本地磁盘里jar 的路径,后面的就不用说了吧!install:install-file  看清楚了!!!这个-file跟install是连着的。

  2.2)mvn dependency:tree命令解决jar包冲突
当项目出现jar包冲突时,用命令mvn dependency:tree 查看依赖情况
mvn dependency:tree 查看依赖树,查看包结构间的依赖
mvn dependency:tree >d:/tmp 把结果输出到文件,
然后再pom.xml文件里排除掉冲突的jar包

<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>${tiles.version}</version>
<exclusions>
<exclusion>
<groupId> org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency> 

解决依赖关系,根据POM文件,下载或者更新该项目所依赖的库文件:
mvn dependency:resolve-plugins

3.我自己习惯的打包步骤
git拉取代码后,切至项目pom文件所在目录,按住Shift+右击 打开PowerShell窗口,输入命令:
mvn clean install '-Dmaven.test.skip=true'
看到如下界面,表示打包成功!当前目录下会生成文件夹target,打的jar包在此目录下。


大家一起来避坑!
【坑1】【maven】在PowerShell窗口下执行maven命令行报错:Unknown lifecycle phase ".test.skip=true".
解决方法一:命令改为:mvn clean package install '-Dmaven.test.skip=true'
解决方法二:不要使用PowerShell命令行模式,使用 cmd 进入命令行执行:
mvn clean package install -Dmaven.test.skip=true

win10下 Shift+右击 打开的是 PowerShell 窗口,而 PowerShell 窗口下,执行带参数的需要’单引号’包起来才可以.
【坑2】执行mvn clean install 命令,显示的java_home与我自己设置的系统变量不一样,冥思苦想,想不到哪里出问题了,偶然的计划从网上找到一个答案。
原来我自己在maven\bin\mvn.cmd 中设置了默认java路径(配置文件开头加了这一行:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131),这个路径和系统变量中的不一样,maven打包默认从mvn.cmd中取了java环境。此坑为大坑!
解决方法:将mvn.cmd中AVA_HOME路径改成系统变量中的路径。(两边最好保持一致)




TAG: maven

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar