gpt4 book ai didi

scala - 自定义Maven插件上的分类器等效

转载 作者:行者123 更新时间:2023-12-03 06:25:30 25 4
gpt4 key购买 nike

我有一个包含Scala核心库,maven插件,gradle插件和其他不需要此问题的功能的项目。它是使用gradle构建的。 (使用gradle构建maven插件似乎比使用maven构建gradle插件要容易)

由于Scala的版本和兼容性,使用maven插件的不同项目需要不同的内核库构建。目前,我需要针对2.11.7和2.12.1进行构建。核心库可以使用分类器轻松解决。例如:

<dependency>
<groupId>org.catapult.sa</groupId>
<artifactId>tribble-core</artifactId>
<version>0.5-SNAPSHOT</version>
<classifier>2.11.7</classifier>
<scope>test</scope>
</dependency>

但是,maven插件配置没有分类器,因此我们不能这样做:
<plugin>
<groupId>org.catapult.sa</groupId>
<artifactId>tribble-maven-plugin</artifactId>
<version>0.5-SNAPSHOT</version>
<classifier>2.11.7</classifier> <!-- this errors with Unrecognised tag: 'classifier'-->
<configuration>...</configuration>
</plugin>

两个版本的Maven插件的代码完全相同,只是依赖性稍有不同。核心代码也完全相同,但针对不同的编译器构建。

我可以通过构建中的设置,更改maven插件的artifactId并进行两次构建来手动处理此问题,但这是解决此问题的“正确”方法吗?有更好的方法还是更自动化的方法?

最佳答案

可以在执行配置级别添加分类器,例如:

  <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>pre-process-classes</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>pre-process</classifier> <!-- here -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>

实际上,上面的示例来自 POM reference部分,但它埋在了 PluginManagement的细节中,但原理是相同的。
这应该使您可以针对所需的每个构建版本进行定位,而不必手动设置 Artifact 标识。

关于scala - 自定义Maven插件上的分类器等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44901626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com