Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven发布插件标签创建_Java_Maven_Svn_Maven Release Plugin - Fatal编程技术网

Java maven发布插件标签创建

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插件

我刚刚使用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插件成功地替换了
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中删除以到达项目根目录的子目录数。现在这种方法有两个问题:

  • 无法保证本地深度与远程深度匹配。尽管这可能是最佳实践
  • 工作目录(从中调用mvn)不必位于项目的根目录中
  • 两者都适用于我的情况。我签出了两个比remote更深的目录。澄清:
    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。之后,它还将其更改回原始值。