Scala 自定义maven插件上的等价分类器
我有一个项目,有一个Scala核心库、一个maven插件、一个gradle插件和一堆这个问题不需要的其他东西。它是使用gradle构建的。(使用gradle构建maven插件似乎比使用maven构建gradle插件更容易) 由于Scala版本和兼容性,使用maven插件的不同项目需要不同的核心库构建。目前我需要针对2.11.7和2.12.1进行构建。使用分类器可以很容易地解决核心库问题。例如:Scala 自定义maven插件上的等价分类器,scala,maven,gradle,maven-plugin,Scala,Maven,Gradle,Maven Plugin,我有一个项目,有一个Scala核心库、一个maven插件、一个gradle插件和一堆这个问题不需要的其他东西。它是使用gradle构建的。(使用gradle构建maven插件似乎比使用maven构建gradle插件更容易) 由于Scala版本和兼容性,使用maven插件的不同项目需要不同的核心库构建。目前我需要针对2.11.7和2.12.1进行构建。使用分类器可以很容易地解决核心库问题。例如: <dependency> <groupId>org.catapult.
<dependency>
<groupId>org.catapult.sa</groupId>
<artifactId>tribble-core</artifactId>
<version>0.5-SNAPSHOT</version>
<classifier>2.11.7</classifier>
<scope>test</scope>
</dependency>
org.catapult.sa
三叉核
0.5-1快照
2.11.7
测试
但是,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>
org.catapult.sa
tribble maven插件
0.5-1快照
2.11.7
...
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>
org.apache.maven.plugins
事实上,上面的例子来自本节,但原则是相同的。
这应该允许您为所需的每个版本的构建设定目标,而无需手动设置artifactid