Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
maven发布插件,带有git don';不能在子文件夹中工作_Git_Maven_Maven Release Plugin_Maven Module - Fatal编程技术网

maven发布插件,带有git don';不能在子文件夹中工作

maven发布插件,带有git don';不能在子文件夹中工作,git,maven,maven-release-plugin,maven-module,Git,Maven,Maven Release Plugin,Maven Module,带有git和maven模块的maven发布插件存在问题 我们的项目结构如下: pom.xml(ApplicationTest and ApplicationConf are modules) ApplicationWeb ---pom.xml(parent pom in root folder) ApplicationTest ---pom.xml(parent pom in root folder) ApplicationConf ---pom.xml(All environmen

带有git和maven模块的maven发布插件存在问题

我们的项目结构如下:

pom.xml(ApplicationTest and ApplicationConf are modules)

ApplicationWeb

---pom.xml(parent pom in root folder)

ApplicationTest

---pom.xml(parent pom in root folder)

ApplicationConf

---pom.xml(All environments are modules. This has no parent pom)

---ConfDev

-------pom.xml(parent ApplicationConf)

---ConfTst

-------pom.xml(parent ApplicationConf)

---ConfAcc

-------pom.xml(parent ApplicationConf)

---ConfPrd

-------pom.xml(parent ApplicationConf)
现在我们要发布dev配置(父级已经发布)。这可以通过在ApplicationConf/ConfDev/pom.xml上执行maven发布来实现

现在,发布准备失败了,因为当它想要推送更改后的文件时,使用了错误的git url。它将我们想要发布的pom的工件id附加到GitURL

http://gitrepourl/git_repo.git/artifact-id
我们在ApplicationConf的pom中定义了scm设置,因此所有环境的根目录都是

<scm>
  <developerConnection>scm:git:http://gitrepourl/git_repo.git</developerConnection>
</scm>

scm:git:http://gitrepourl/git_repo.git
我们是否有一个错误的项目结构、错误的设置,或者这是maven发布插件中的一个bug

使用的版本:

maven发布插件2.3.2和2.4.1

Maven 3.0.5

可能的解决办法:

从配置父pom中删除所有配置项目as模块,并将更多scm信息添加到每个pom中,如下所示:

<scm>
<url>https://github.com/XXX/YYY</url>
<connection>scm:git:ssh://git@github.com/XXX/YYY.git</connection>
<developerConnection>scm:git:ssh://git@github.com/XXX/YYY.git</developerConnection>

https://github.com/XXX/YYY
scm:git:ssh://git@github.com/XXX/YYY.git
scm:git:ssh://git@github.com/XXX/YYY.git


现在我可以在每个pom上执行发布。这是正确的解决方案吗?

Maven会自动将子模块artifactId添加到scm/连接URL中。 要修复它,必须将scm节点从父模块复制到每个子模块