我有一个项目,包含Scala核心库,maven插件,gradle插件以及此问题不需要的一堆其他位。它是使用gradle构建的。 (使用gradle构建maven插件比使用maven的gradle插件更容易)
由于Scala版本和兼容性,使用maven插件的不同项目需要不同的核心库版本。目前我需要建立2.11.7和2.12.1。核心库可以很容易地用分类器解决。 E.G:
<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,然后构建两次,但是&#34; right&#34;解决这个问题的方法?是否有更好的方式或更自动化的方式?
答案 0 :(得分:0)
可以在执行配置级别添加分类器,例如:
def foo
time = Benchmark.measure {
code to test
}
它有点埋没在POM reference的细节中,实际上上面的例子来自PluginManagement部分,但原则是相同的。 这应该允许您定位所需的每个版本的构建,而无需手动设置artifactid。