Maven docs明确建议将分类器作为多JDK支持的解决方案:
分类器允许区分从同一POM构建但内容不同的工件。它是一些可选的任意字符串 - 如果存在 - 将附加到版本号之后的工件名称。作为此元素的动机,请考虑一个项目,该项目提供针对JRE 1.5的工件,但同时也是一个仍支持JRE 1.4的工件。第一个工件可以配备分类器jdk15,第二个工件可以配备jdk14,以便客户可以选择使用哪个。
我从未见过这样一个有效的例子。文档是错误的,还是以某种方式实际上使Maven使用不同的JDK(显然是不同的源目录,因为它们将具有不同的语法(例如菱形或lambdas))多次构建相同的工件,并且最重要的是,部署它们一起?
似乎这种事情也是JEP 238潜在支持的基本要求。
答案 0 :(得分:1)
文档没有错。它只是给出了如何应用分类器的示例,在这种情况下,通过定位几个JRE。
关于如何做到这一点,可能有几种方法可以做到这一点。有关相关问题,请参阅How to configure Maven to build two versions of an artifact, each one for a different target JRE。您还可以使用Maven配置文件触发不同的执行。在这种情况下,每个配置文件使用不同的分类器触发maven-jar-plugin
的不同配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>jdk14</classifier>
</configuration>
</execution>
</executions>
</plugin>