Java maven发布插件标签创建
我刚刚使用maven发布插件发布了一个版本,显然:) 我的父pom中的scm配置如下:Java maven发布插件标签创建,java,maven,svn,maven-release-plugin,Java,Maven,Svn,Maven Release Plugin,我刚刚使用maven发布插件发布了一个版本,显然:) 我的父pom中的scm配置如下: scm:svn:http:/localhost/svn/project/trunk/project/3。实现/02源代码 正如您所看到的,在到达源代码之前,我们还有几个文件夹(RUP风格) mvn发行版:准备将导致以下scm配置: scm:svn:http://localhost/svn/project/tags/project-1.0.0/02 源代码 因此,不知何故,maven release插件
scm:svn:http:/localhost/svn/project/trunk/project/3。实现/02源代码
正如您所看到的,在到达源代码之前,我们还有几个文件夹(RUP风格)
mvn发行版:准备
将导致以下scm配置:
scm:svn:http://localhost/svn/project/tags/project-1.0.0/02 源代码
因此,不知何故,maven release插件成功地替换了trunk/project/3。实施/02源代码
带标签/project-1.0.0/02源代码
为什么不像我预期的那样,这不是标签/project-1.0.0?如果我运行mvn release:perform
插件将签出整个3。实现
目录
作为参考,我的插件定义如下:
org.apache.maven.plugins
maven发布插件
2.5
http://localhost/svn/project/tags
好的,通过查看maven release manager源代码,我找到了导致这种情况的原因。重写developerConnection
值时,RewritePomsForReleasePhase
类根据本地项目计算需要从developerConnectionUrl中删除以到达项目根目录的子目录数。现在这种方法有两个问题:
http://localhost/project/3. 已将实现/02源代码签出到
D:\workspace\project
此外,我们还有一个包含父pom的项目父目录
因此,现在通过查看本地结构(从工作目录,即项目父目录,到项目目录)确定我们的深度为1,并将其应用于developerConnection url。然后它在原始developerConnection上做一个子字符串,结果是02源代码
长话短说:当本地目录结构与远程目录结构不匹配时,maven release插件无法按预期工作。现在我必须签出服务器路径并创建一个新的pom,或者将父pom移动到项目根目录以使其工作
编辑:将pom移动到projectbase目录可能会解决这个问题,保持developerConnectionURL不变。将在下一版本中对此进行确认。您是说mvn发行版:准备更改POM文件的
部分?或者您正在从Maven调试中读取它?是的,它在创建标记之前更改了它并将其提交到trunk。之后,它还将其更改回原始值。