我使用Jenkins服务器作为CI。我正在使用maven docker来运行maven任务。所以这是我的问题和我的怀疑。
使用jenkins我使用maven插件来配置和编译maven任务。如果我想构建我运行构建参数,如果我想创建快照或版本,我运行 执行Maven发布 ,在这里我可以指定版本。
但是使用docker会更复杂,因为我必须使用mvn命令的参数。所以:
如何设置创建发布或快照版本的选项?
我的settings.xml文件包含我的nexus网址以及用户/密码,但问题是它与docker一起使用。
我正在使用docker.io/maven image。
答案 0 :(得分:1)
Maven根据版本号处理版本和快照,而不是基于命令行参数。
有一个maven-release-plugin可以自动完成发布所需的工作;但是,在使用之前,您可能需要一些背景信息。
要“构建版本”,请检入缺少“-SNAPSHOT”标识符的pom.xml(因此您有发布源代码的历史记录),然后使用“mvn deploy”构建插件“命令(假设您的pom.xml已完全配置,可能不是这样)。然后你会检查“下一个”-SNAPSHOT版本,每个人都会继续开发下一个快照版本。
如果这听起来像是很多工作,请记住,所有这些都是通过maven-release-plugin实现的。这意味着工作完成一次,之后的每个版本都是自动化的。这降低了发布中人为错误的可能性,并加快了发布过程的速度。最初的设置是值得的。
强烈建议不要使用“mvn deploy”命令重建非SNAPSHOT号码,因为它会使二进制文件依赖于版本号和构建时间,而不会跟踪最后一点信息。
答案 1 :(得分:0)
如果您的版本以-SNAPSHOT
结尾,则Maven会自动将其视为快照。否则,它被视为发布版本。
然后,可能还有其他选项,例如测试,调试和代码分析,但是如果不亲自动手就很难知道。
[更新] Jenkins似乎对发布版进行了大量检查,如下所述:http://labs.bsb.com/2014/02/better-maven-releases-with-jenkins/