你在正确的球场。看这里:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html
为避免硬编码可执行文件的文件系统路径,您可以使用属性。例如:
<executable>${JAVA_1_4_HOME}/bin/javac</executable>
然后每个开发人员在 settings.xml 中定义此属性,或设置环境变量,以便构建保持可移植性。
<settings>
[...]
<profiles>
[...]
<profile>
<id>compiler</id>
<properties>
<JAVA_1_4_HOME>C:\Program Files\Java\j2sdk1.4.2_09</JAVA_1_4_HOME>
</properties>
</profile>
</profiles>
[...]
<activeProfiles>
<activeProfile>compiler</activeProfile>
</activeProfiles>
</settings>
如果您使用不同的 JDK 构建,您可能需要自定义 jar 文件清单。
我相信关键是设置一个明确的<executable>
. 而且我怀疑它可能是硬编码的,而不会弄乱环境变量或其他子句。
另请参阅此链接,并查看示例中的“可执行文件” pom.xml
:
Maven编译器要使用的JDK版本在哪里指定?