首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决将带有分类器的工件发布到共享pom的GitHub包时的冲突?

如何解决将带有分类器的工件发布到共享pom的GitHub包时的冲突?
EN

Stack Overflow用户
提问于 2021-01-26 20:19:38
回答 1查看 91关注 0票数 2

我正在努力解决this的问题。

我有一个项目,它构建了一个依赖平台的JAR,并根据os-maven-plugin添加了一个分类器

代码语言:javascript
复制
<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)决定的。

如何在构建时注入这个插件定义的属性来创建唯一的工件名称?

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 00:15:28

让我再试一次。

artifactIdversion不受插件生成的属性的影响。为了影响它们,必须在命令行上(或者直接在POM中)提供属性。

所以我们只剩下分类器了。

您需要在同一个版本中使用分类器构建所有工件。因此,您需要以一种一次性为不同操作系统构建的方式来更改构建。我不知道这是否可能(取决于你是否可以在Linux上为Windows构建),但它似乎是解决你问题的唯一"Maven way“解决方案。

当然,您仍然可以尝试一些技巧,比如在部署POM之后删除它,但如果可能的话,应该避免这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65901254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档