Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 自定义maven插件上的等价分类器_Scala_Maven_Gradle_Maven Plugin - Fatal编程技术网

Scala 自定义maven插件上的等价分类器

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.

我有一个项目,有一个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>

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