如何设置Maven选项来运行发布或快照

我使用Jenkins服务器作为CI。 我正在使用maven docker来运行maven任务。 所以这是我的问题和我的疑惑。

与jenkins我使用maven插件来configuration和编译maven任务。 如果我想构build,我运行Build with Parameters ,如果我想创build一个快照或发行版,我运行Perform Maven Release ,在这里我可以指定版本。

但是由于我必须使用mvn命令的参数,因此docker更复杂。 所以:

如何设置选项来创build发行版或快照版本?

我有我的nexus url的settings.xml文件,也与用户/密码,但问题是与docker使用它。

我正在使用docker.io/maven图像。

Maven根据版本号来处理版本和快照,而不是基于命令行参数。

有一个maven-release-plugin ,可以自动完成释放构build所需的工作; 但是,在使用它之前,您可能需要一些背景信息。

为了“构build一个版本”,你检查一个没有“-SNAPSHOT”标识符的pom.xml文件(所以你有一个发行版源代码的历史logging),然后使用“mvn deploy”命令来构build插件假设你的pom.xml已经完全configuration好了,这可能不是)。 然后,您将检查“下一个”-SNAPSHOT版本,并且每个人都将继续开发下一个快照版本。

如果这听起来像很多工作,请记住,所有这些都是通过maven-release-plugin自动完成的。 这意味着工作完成了一次,之后的每个发布都是自动的。 这样可以降低发布过程中出现人为错误的可能性,并加快发布过程的速度。 最初的努力是值得的。

非常不鼓励使用“mvn deploy”命令重build一个非SNAPSHOT号码,因为它使得二进制文件依赖于版本号和构build时的最后一点信息没有被跟踪。

如果您的版本以-SNAPSHOT ,则它会被Maven自动视为快照。 否则它被认为是发行版本。

那么,可能还有其他的select,比如testing,debugging,代码分析等,但是如果没有这个项目就很难知道。

[更新]jenkins似乎做了很多检查发行版本在这里描述: http : //labs.bsb.com/2014/02/better-maven-releases-with-jenkins/