scala - 使用不同的 Scala 版本生成同一 Maven 项目的两个 jar

标签 scala maven maven-2 maven-3 maven-assembly-plugin

我有一个包含 Scala 代码的 Maven 项目,我想根据不同的 Scala 版本(2.10.6 和 2.11.8)生成两个 jar。 如果有人请建议解决方案,我如何在单个 Maven 安装执行中实现此目的,或者是否有任何其他方法可以使用某些 Maven 插件在 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 - 使用不同的 Scala 版本生成同一 Maven 项目的两个 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46680403/

相关文章:

scala - 从 socko 迁移到 akka-http websockets

maven - 将文件读入 Maven 属性

java - 如何避免我的 SVN 嵌入式 $Id$ 属性出现 "line is longer than 80 characters"?

java - maven pom.xml敏感信息和VCS

gradle - Intellij始终给出 Unresolved 符号

java - Jboss-Maven-Plugin 无法启动?

scala - Scala 值类的惯用方法

scala - NoSuchMethodError : org. apache.spark.internal.Logging

scala - IntelliJ Idea Scala 文件在 'New' 上下文菜单中不可用

Eclipse 终端不更新/行为奇怪