zoukankan      html  css  js  c++  java
  • maven项目的构建命令

    在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然,不就是 mvn clean install 么?事实上比较好的集成命令会稍微复杂些,下面是一些总结:

    • 不要忘了clean: clean能够保证上一次构建的输出不会影响到本次构建。

    • 使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。

    • 使用-U参数: 该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。

    • 使用-e参数:如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。

    • 使用-Dmaven.repo.local参数:如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=/home/juven/ci/foo-repo/这样的参数为每个任务分配本地仓库。-D设置参数

    • 使用-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。

    • clean package -U -Dmaven.test.skip=true -Ptesting  //maven项目构建的时候打包地址不同,一般有开发环境dev,测试环境test,预览环境preview,生产环境release
    • -P的意义参考链接:http://www.cnblogs.com/EasonJim/p/6828743.html(激活配置文件)
    • 关于maven的相关知识参考链接:https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_build_profiles.html

    综上,持续集成服务器上的集成命令应该为 mvn clean deploy -B -e -U -Dmaven.repo.local=xxx 。此外,定期清理持续集成服务器的本地Maven仓库也是个很好的习惯,这样可以避免浪费磁盘资源,几乎所有的持续集成服务器软件都支持本地的脚本任务,你可以写一行简单的shell或bat脚本,然后配置以天为单位自动清理仓库。需要注意的是,这么做的前提是你有私有Maven仓库,否则每次都从Internet下载所有依赖会是一场噩梦。

    使用maven编译,清理,测试,打包,部署项目

    1)编译 mvn compile   会生产一个target文件,target下面有一个classes文件夹存放的是我们编译好的类

     2)清理  mvn clean   把编译时生产的target文件夹删掉

    3)测试  mvn test   生产的target下面有一个classes和test-classes,maven先帮我们编译项目,然后在执行测试代码

    4)打包 mvn package target下面多了一个.jar文件

    5)部署 mvn install target下面会有一个.jar文件,使用"mvn install"命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能够做的事情最多

    组合命令的使用:

    mvn clean compile //先删除在编译

    mvn clean package //先删除在打包

    mvn clean install //先删除在部署

    mvn clean test //先删除在测试

  • 相关阅读:
    Swift技术之如何在iOS 8下使用Swift设计一个自定义的输入法 (主要是NSLayoutConstraint 的使用)
    android 旋转手机的时候,如何忽略onCreate再次被系统调用?
    在iOS 8中使用UIAlertController
    09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例
    一些工具的版本问题 valgrind gdb 以及编译
    C struct __attribute__ ((__packed__))
    C++ class 只允许堆创建/只允许栈创建
    Shell 字符串操作
    存储系统的分类
    ssh 到服务器然后输入中文保存到本地变成乱码
  • 原文地址:https://www.cnblogs.com/pcy226/p/9845412.html
Copyright © 2011-2022 走看看