java mavenassemblyplugin和JVM版本 1 周,3 日 Questions & Answers 3884 是否可以使用maven-assembly-plugin创建JAR,并设置特定的编译器版本 谢谢 更新: 我的意思是:maven-compiler-plugin
# 1 楼答案 正如khmarbaise在评论中所解释的那样,assembly插件只是在这里将一些项目输出聚合到一个包中(例如一个ZIP)。JVM不参与此步骤 你到底想要实现什么?要指定用于构建JAR的JVM版本,只需执行以下操作: <build> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> 在本例中,您将使用JVM1.6编译项目 由于我不确定您想要实现什么,还有一件事对您很有用:您可以在使用特定JVM时激活概要文件。例如: <profiles> <profile> <activation> <jdk>1.4</jdk> </activation> ... </profile> </profiles> 在这种情况下,如果您使用的是JVM1.4,您的配置文件将被激活。如果您使用的是Maven 2.1+,还可以使用一系列值: <profiles> <profile> <activation> <jdk>[1.3,1.6)</jdk> </activation> ... </profile> </profiles> 此配置文件将针对1.3(包括)和1.6(不包括)之间的所有版本激活,即1.3、1.4和1.5 使用此功能,您将能够根据所使用的JVM版本为构建配置任何插件
# 2 楼答案 您不能真正设置编译器版本(因为maven使用已安装的版本),但可以在maven编译器插件上配置源和目标级别: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> Edit:正如khmarbaise在评论中指出的那样,如果必须,您可以指定不同的编译器,但是您必须将fork设置为true并指定可执行文件的路径,在通常情况下,这并不是您想要的复杂程度。但他是对的,尽管如此,这实际上是可能的,而且显然是从maven编译器插件的2.0版开始的
# 1 楼答案
正如khmarbaise在评论中所解释的那样,
assembly
插件只是在这里将一些项目输出聚合到一个包中(例如一个ZIP)。JVM不参与此步骤你到底想要实现什么?要指定用于构建JAR的JVM版本,只需执行以下操作:
在本例中,您将使用JVM1.6编译项目
由于我不确定您想要实现什么,还有一件事对您很有用:您可以在使用特定JVM时激活概要文件。例如:
在这种情况下,如果您使用的是JVM1.4,您的配置文件将被激活。如果您使用的是Maven 2.1+,还可以使用一系列值:
此配置文件将针对1.3(包括)和1.6(不包括)之间的所有版本激活,即1.3、1.4和1.5
使用此功能,您将能够根据所使用的JVM版本为构建配置任何插件
# 2 楼答案
您不能真正设置编译器版本(因为maven使用已安装的版本),但可以在maven编译器插件上配置源和目标级别:
Edit:正如khmarbaise在评论中指出的那样,如果必须,您可以指定不同的编译器,但是您必须将
fork
设置为true并指定可执行文件的路径,在通常情况下,这并不是您想要的复杂程度。但他是对的,尽管如此,这实际上是可能的,而且显然是从maven编译器插件的2.0版开始的