使用不同的Scala版本生成两个相同的Maven项目的瓶子

问题描述:

我有一个使用Scala代码的Maven项目,我想根据不同的Scala版本(2.10.6和2.11.8)生成两个jar。 如果有人请建议的解决方案,我如何才能做到这一点单Maven的安装执行或是否有使用一些Maven插件Maven中实现这一目标的任何其他方式。使用不同的Scala版本生成两个相同的Maven项目的瓶子

我能够使用多次执行来解决此问题。

<build> 
    <plugins> 
    <plugin> 
     <groupId>net.alchim31.maven</groupId> 
     <artifactId>scala-maven-plugin</artifactId> 
     <version>3.2.1</version> 
     <executions> 
      <execution> 
       <id>scala-version-2.10</id> 
       <goals> 
       <goal>compile</goal> 
       <goal>testCompile</goal> 
       </goals> 
       <configuration> 
       <scalaVersion>2.10.6</scalaVersion> 
       <outputDir>${project.build.outputDirectory}/scala-2.10</outputDir> 
       </configuration> 
      </execution> 
      <execution> 
       <id>scala-version-2.11</id> 
       <goals> 
       <goal>compile</goal> 
       <goal>testCompile</goal> 
       </goals> 
       <configuration> 
       <scalaVersion>2.11.8</scalaVersion> 
       <outputDir>${project.build.outputDirectory}/scala-2.11</outputDir> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <executions> 
      <execution> 
       <id>scala-2.10</id> 
       <goals> 
       <goal>jar</goal> 
       </goals> 
       <phase>package</phase> 
       <configuration> 
       <classifier>scala-2.10</classifier> 
       <excludes> 
        <exclude>scala-2.11/**</exclude> 
        <exclude>sparkScala/**</exclude> 
        <exclude>sparksql/**</exclude> 
        <exclude>*.timestamp</exclude> 
       </excludes> 
       </configuration> 
      </execution> 
      <execution> 
       <id>scala-2.11</id> 
       <goals> 
       <goal>jar</goal> 
       </goals> 
       <phase>package</phase> 
       <configuration> 
       <classifier>scala-2.11</classifier> 
       <excludes> 
        <exclude>scala-2.10/**</exclude> 
        <exclude>sparkScala/**</exclude> 
        <exclude>sparksql/**</exclude> 
        <exclude>*.timestamp</exclude> 
       </excludes> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
    </plugins> 

创建具有依赖性覆盖了不同版本的Scala的概况。您需要在两个配置文件上运行mvn install。欲了解更多信息,请参阅:different-dependencies-for-different-build-profiles-in-maven

此外,您还需要更改配置文件中的工件名称/版本以区分这两者。