我想用两个不同的分类器部署两个罐子工件,但由于两者都提供了它们自己的版本pom.xml
,所以目前失败。我该如何解决这个问题,以便两个pom.xml
可以与他们的工件一起上传?Maven从两个单独的pom.xml部署两个不同分类器的罐子
示例 - 我有com.test.company.somelib-1.0.0-cmp1.jar
和com.test.company.somelib-1.0.0-cmp2.jar
,其中cmpX
是一个分类器。这两个软件包都包含(逻辑上)相同的代码和类(具有相同的版本),但它们在预处理方式上略有不同。分类器注释是由于我们需要维护的向后兼容性。
长话短说,第一件神器上传正常,第二件失败,Forbidden
,因为我们的存储库不允许覆盖工件(我想保留它)。
有一个稍微不同的管道可以创建两个包,所以它们的构建很容易分开。我只想将它们部署为两个具有相同名称和不同分类器的软件包。
感谢您的帮助
编辑:有人建议使用Maven的配置文件。我可以看到他们会工作,但他们不会很理想。
考虑下图中描述的设置 - 有一个CI服务器(TeamCity)。
- 有一个“启动器”构建(来源)。这个版本检出所有必需的源文件。
- 从这个初学者构建几个其他版本被触发(处理使用x.x.x/编译)。其中的每一个构建都会调整一个template-pom.xml(填充特定的
classifier
和其他信息),然后构建它的工件并将其部署到我们的Artifactory。
随着我要实现的,如果我决定要添加其他处理,建立的设置,所有我需要做的就是添加一个“分支”。如果我使用配置文件,我还需要将一个新配置文件添加到pom.xml文件中。
请纠正我,如果我错了。配置文件似乎能够实现目标,但不是理想的,至少在我的情况下。
难道我理解你的权利 - 你有两个不同的POM文件,但它们具有相同的GroupId的artifactId版本和因此在部署第二个时会被禁止? – mediahype
是的,这是正确的。文件的名称是不同的(分类器),但它们的pom.xml名称是相同的 - 当pom.xml被上传时,我得到了禁止。 –
归结为以下问题:编译时需要* runtime * .jar文件吗?因为从名称看,它看起来不像 – mediahype