J'ai un projet Maven avec le code Scala et je veux générer les deux jarres basés sur les différentes versions de Scala (2.10.6 et 2.11.8). Si quelqu'un suggère s'il vous plaît la solution comment je peux réaliser ceci dans l'exécution simple d'installation de Maven ou s'il y a n'importe quelle autre manière de réaliser dans Maven utilisant le Maven.Générer deux jarres du même projet Maven en utilisant une version différente de Scala
0
A
Répondre
1
Je suis capable de résoudre ce problème en utilisant plusieurs exécutions.
<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>
1
Créez des profils qui ont la dépendance substituée pour différentes versions de Scala . Vous devrez exécuter mvn install
sur les deux profils. Pour plus d'informations, voir: different-dependencies-for-different-build-profiles-in-maven
De même, vous devez modifier le nom/la version de l'artefact dans les profils pour faire la distinction entre les deux.