kev*_*dez 11 git bitbucket maven-release-plugin
我有一个所有项目的主POM.POM包含以下SCM部分:
<groupId>com.company</groupId>
<artifactId>master</artifactId>
<version>...</version>
<packaging>pom</packaging>
<scm>
<connection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</connection>
<developerConnection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</developerConnection>
<url>https://bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</url>
<tag>HEAD</tag>
</scm>
<properties>
<project.scm.id>bitbucket-scm</project.scm.id>
<scm.project.name>maven-master</scm.project.name>
<scm.repository.name>tsu</scm.repository.name>
</properties>
Run Code Online (Sandbox Code Playgroud)
现在,我有一个maven多模块项目,这是父POM:
<parent>
<groupId>com.company</groupId>
<artifactId>master</artifactId>
<version>...</version>
</parent>
<groupId>com.company.group</groupId>
<artifactId>project-foo</artifactId>
<version>...</version>
<packaging>jar</packaging>
<name>project FOO</name>
<properties>
<scm.project.name>project-foo</scm.project.name>
</properties>
Run Code Online (Sandbox Code Playgroud)
执行发布插件以释放主POM(第一个片段)时,它工作正常.但是,当执行发布插件以释放多模块项目(第二个片段)时,它会失败,说:
[错误]无法执行目标org.apache.maven.plugins:maven-release-plugin:2.5.3:在project project-foo上准备(default-cli):无法提交文件[ERROR]提供者消息:[ERROR] git-push命令失败.[ERROR]命令输出:[ERROR]致命:远程错误:未找到存储库[错误]请求的存储库不存在,或者您没有[错误]访问它的权限.
在日志中,我还可以看到存储库URL.
对于Master POM的工作版本,它使用
https:// user:********@ bitbucket.server.de/scm/tsu/maven-master.git refs/heads/dev:refs/heads/dev
对于多模块项目的非工作版本,它使用
https:// user:********@ bitbucket.server.de/scm/tsu/project-foo.git/project-foo refs/heads/dev:refs/heads/dev
在发布多模块项目时,似乎将项目的工件ID附加到URL.
将整个SCM部分复制到多模块项目并进行修改时,它可以正常工作.但是,我只想在主POM中插入单个属性,以避免将SCM标记复制到每个项目.
任何有助于解决此问题的帮助表示赞赏.
小智 6
从Maven 3.6.1开始,您可以在 pom 父级中设置以下内容:
<scm child.scm.connection.inherit.append.path="false"
child.scm.developerConnection.inherit.append.path="false"
child.scm.url.inherit.append.path="false">
<connection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</connection>
<developerConnection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</developerConnection>
<url>https://bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</url>
<tag>HEAD</tag>
</scm>
Run Code Online (Sandbox Code Playgroud)
您必须在子 poms 中重新定义 scm :
<scm child.scm.connection.inherit.append.path="false"
child.scm.developerConnection.inherit.append.path="false"
child.scm.url.inherit.append.path="false">
<connection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</connection>
<developerConnection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</developerConnection>
<url>https://bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</url>
<tag>HEAD</tag>
</scm>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
857 次 |
最近记录: |