Maven版本控制和发布GIT存储库
我在一个GIT存储库中有多个maven项目。我想为maven项目执行单独的发布,将发布版本推送到nexus,跳过标记并增加快照和提交 使用Maven发布目标Maven版本控制和发布GIT存储库,git,maven,jenkins,nexus,maven-release-plugin,Git,Maven,Jenkins,Nexus,Maven Release Plugin,我在一个GIT存储库中有多个maven项目。我想为maven项目执行单独的发布,将发布版本推送到nexus,跳过标记并增加快照和提交 使用Maven发布目标 release:clean release:prepare release:perform Maven发布插件: <plugin> <groupId>org.apache.maven.plugins</groupId> &l
release:clean release:prepare release:perform
Maven发布插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven.releaseplugin.version}</version>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
<releaseProfiles>releases</releaseProfiles>
</configuration>
</plugin>
org.apache.maven.plugins
maven发布插件
${maven.releaseplugin.version}
v@{project.version}
真的
释放
由于标记发生在存储库中,我想跳过GIT中的标记。我们将在代码冻结窗口中手动进行标记
我希望避免为maven项目创建单独的存储库
你能告诉我怎样才能做得更好吗
我还想了解其他公司是如何管理it的。我认为Maven&Nexus提供的最佳(最简单、最可靠)方法是:
- 使用快照存储库。默认情况下,上载到Nexus时,快照将替换为已解析的快照版本-它包含时间戳和增量编号。您可以自己生成和设置此版本:
- 将此版本放在某个可见的位置(例如Jenkins Build的描述)并在部署期间复制粘贴
- 因为您知道该版本,所以可以将其传递给下一个作业—使用自动部署构建部署管道
- 无标签,无发布版本(与连续交付不兼容)
- 非常简单,几乎没有自定义脚本
- 使用现有工具的功能。例如,您可以将Nexus中的任务配置为删除非常旧的快照以释放空间
- 不取决于您如何管理VCS存储库
VERSION=`mvn help:evaluate -Dexpression=project.version | grep -v "^\["| grep -v Download`
VERSION=${VERSION/%-SNAPSHOT/} #get rid of -SNAPSHOT if it's there
VERSION="$VERSION-"`date +"%Y%m%d.%H%M%S"`"-$BUILD_NUMBER"
mvn versions:set -DnewVersion=$VERSION