我是一个团队,对公共开源代码项目进行本地更改,具有以下一般结构:
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>sphinx4-core</module>
<module>sphinx4-data</module>
<module>sphinx4-samples</module>
</modules>
我应该如何将新生成的快照工件部署到我们团队的内部远程存储库?我应该更新sphinx-4父母或其子模块的GAV吗?我打了一个指向我们的远程存储库的部分,但现在我不确定如何将这些新生成的工件指定为依赖项而不是CMU的Sonatype存储库上的工件。编辑POM感觉不好,但也许这是一种糟糕的直觉,我应该为我们的团队接受全新的POM。
感谢您的任何建议。
答案 0 :(得分:0)
要将创建的工件部署到另一个maven存储库,您需要添加或更改pom的<distributionManagement>
部分。或者添加一个并替换父级中的一个。
结果是部署目标将工件上传到新位置。
此外,我会更改您修补或修改的工件的版本(如果不可能对该项目做出贡献)。例如,通过添加1.0-mycompany-p1-SNAPSHOT。我不仅会增加版本号 - 将来可能会发生冲突。
我不建议更改artifactId
和/或groupId
。原因是如果maven也表现为传递依赖,则允许maven将工件解析为“相同”工件。想象一下,你会将commons-logging更改为commons-logging-patched(作为新的artifactId
。你可能最终会在类路径中使用两个jar,因为maven不会识别它几乎相同的东西。
我同意你的直觉:不使用原始版本(pom.xml
)进行篡改的方法通常是最好的方法。