我正在努力解决this的问题。
我有一个项目,它构建了一个依赖平台的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)决定的。
如何在构建时注入这个插件定义的属性来创建唯一的工件名称?
发布于 2021-02-09 00:15:28
让我再试一次。
项artifactId和version不受插件生成的属性的影响。为了影响它们,必须在命令行上(或者直接在POM中)提供属性。
所以我们只剩下分类器了。
您需要在同一个版本中使用分类器构建所有工件。因此,您需要以一种一次性为不同操作系统构建的方式来更改构建。我不知道这是否可能(取决于你是否可以在Linux上为Windows构建),但它似乎是解决你问题的唯一"Maven way“解决方案。
当然,您仍然可以尝试一些技巧,比如在部署POM之后删除它,但如果可能的话,应该避免这样做。
https://stackoverflow.com/questions/65901254
复制相似问题