指定 JDK 以供 Maven 使用

2022-08-31 06:53:15

我正在尝试构建一个我修改过的Hudson插件,它需要jdk1.6。这很好,但我不明白我如何告诉maven不同的jdk在哪里。我在互联网上发现很少提及,但它们似乎不适用于我。有些人建议添加一些配置,但我没有.另外,我不想对所有maven构建使用1.6。.m2/settings.xmlsettings.xml

一个扭结是我在天鹅座中使用的,如果这很重要的话。看来我应该能够在项目pom文件中制作规范,但是现有的pom非常裸露。mvn

所以底线是,有没有办法为单个maven调用指定一个jdk?


答案 1

所以底线是,有没有办法为单个maven调用指定一个jdk?

临时更改环境变量的值。JAVA_HOME


答案 2

似乎maven现在在这里给出了一个解决方案:使用不同的JDK编译源代码

让我们说你对JDK7(它将运行maven进程)的看法JAVA_HOME

您的可能是 :pom.xml

<build>
    <plugins>
        <!-- we want JDK 1.6 source and binary compatiblility -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <!-- ... -->
        <!-- we want sources to be processed by a specific 1.6 javac -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
              <verbose>true</verbose>
              <fork>true</fork>
              <executable>${JAVA_1_6_HOME}/bin/javac</executable>
              <compilerVersion>1.3</compilerVersion>
            </configuration>
        </plugin>
    </plugins>
</build>

如果你的开发人员只是在他们的中添加(和自定义)以下行,你的pom将是独立于平台的: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>
          <JAVA_1_6_HOME>C:\Program Files\Java\j2sdk1.6.0_18</JAVA_1_6_HOME>
        </properties>
    </profile>
  </profiles>
  [...]
  <activeProfiles>
    <activeProfile>compiler</activeProfile>
  </activeProfiles>
</settings>

推荐