zoukankan      html  css  js  c++  java
  • maven打包相关

    系统环境: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'
    看到build success,表示打包成功!当前目录下会生成文件夹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与我自己设置的系统变量不一样,冥思苦想,想不到哪里出问题了,偶然的计划从网上找到一个答案。
    原来我自己在maveninmvn.cmd 中设置了默认java路径(配置文件开头加了这一行:
    set JAVA_HOME=C:Program FilesJavajdk1.8.0_131),这个路径和系统变量中的不一样,maven打包默认从mvn.cmd中取了java环境。此坑为大坑!
    解决方法:将mvn.cmd中AVA_HOME路径改成系统变量中的路径。(两边最好保持一致)
  • 相关阅读:
    Aspose.word总结
    表格样式
    Aspose.Words 总结
    mysql主从复制
    WebApi系列~通过HttpClient来调用Web Api接口
    Memcached服务器安装、配置、使用详解
    Jqery之select操作
    Centos7 设置IPtables
    memcached全面剖析--5
    memcached全面剖析--4
  • 原文地址:https://www.cnblogs.com/july-1016/p/14046937.html
Copyright © 2011-2022 走看看