我正在尝试发布一个使用git作为SCM的多模块maven项目,我遇到的第一个问题是maven发布插件构建release.properties scm.url的方式.我的父POM看起来像这样:
<packaging>pom</packaging>
<groupId>org.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:git://github.com/username/project.git</connection>
<developerConnection>scm:git:git@github.com:username/project.git</developerConnection>
<url>http://github.com/username/project</url>
</scm>
<modules>
<module>api</module>
<module>spi</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
模块POM很简单:
<parent>
<groupId>org.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>api</artifactId>
<version>0.2.2</version>
Run Code Online (Sandbox Code Playgroud)
我的目标是能够发布单个模块,因为它们各自具有不同的版本,并且我不希望每次发布时都将所有版本一起增加.
当我切换到api目录并执行以下操作时,mvn release:clean release:prepare我遇到了以下输出:
[INFO] Executing: cmd.exe /X /C "git push git@github.com:username/project.git/api master:master"
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The git-push command failed.
Command output:
ERROR: Repository not found.
Run Code Online (Sandbox Code Playgroud)
看起来maven发布插件通过将模块名称附加到其上来创建scm.url developerConnection,这最终不是github上的有效存储库.我不确定设置它的正确方法是什么.可能是Maven + git +发布单个子模块根本不起作用的情况?任何输入都表示赞赏.
bma*_*ies 14
要了解如何使其工作,请查看一个工作示例,例如:
https://github.com/sonatype/sonatype-aether
但是,如果您想要发布单件,这将无济于事.在这种情况下,您只需将<scm>元素复制到所有poms中.
这是关于maven dev列表讨论的一个活跃主题,但是不要屏住呼吸从那里获得解决方案; 这是一个大问题.
Gra*_*ray 12
我通过搜索"git-push命令失败"找到了这个问题.我有一个类似的配置,我有一个master-pom然后我发布的子模块作为他们自己的maven包.
为了使它工作,我不得不调整以下的scm部分pom.xml.特别需要调整连接才能正常工作.github的所有人都没有工作.
<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>
</scm>
Run Code Online (Sandbox Code Playgroud)
在XXX上面的例子就是你的用户名GitHub的.您不能使用:XXXformat(git@github.com:XXX/...),因为过去的值:被解释为端口号.这YYY显然是XXX帐户下的存储库名称.
我刚刚成功使用此模式逐个发布了所有3个子模块.
| 归档时间: |
|
| 查看次数: |
31072 次 |
| 最近记录: |