如何解决将带有分类器的工件发布到共享 pom 的 GitHub 包时,如何解决冲突?
我有一个项目,它构建了一个依赖于平台的 JAR 并根据 os-maven-plugin 添加了一个分类器:
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.levyfan</groupId>
<artifactId>sentencepiece</artifactId>
<version>0.0.2</version>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.6.1</version>
</extension>
</extensions>
<!-- ... -->
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<classifier>${os.detected.classifier}</classifier>
</configuration>
</plugin>
</plugins>
</build>
当我使用 mvn --batch-mode deploy
构建工件并将其发布到 GitHub 包时,我遇到了冲突错误。这是因为工件共享一个 pom (sentencepiece-0.0.2.pom
),但 JAR 工件由 os-maven-plugin
值 (sentencepiece-0.0.2-XYZ.jar
) 确定。
解决方法
让我再试一次。
项目 artifactId
和 version
不会受到插件生成的属性的影响。要影响它们,必须在命令行中(或者直接在 POM 中)提供属性。
所以我们只剩下分类器了。
您需要在同一个构建中使用分类器构建所有工件。因此,您需要以一种一次性为不同操作系统构建的方式更改构建。我不知道这是否可行(取决于您是否可以为 Linux 上的 Windows 构建),但它似乎是您问题的唯一“Maven 方式”解决方案。
当然,您仍然可以尝试在部署后删除 POM 之类的技巧,但如果可能的话,应该避免这种情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。