programing

Maven이 사용할 JDK 지정

javaba 2022. 8. 7. 17:57
반응형

Maven이 사용할 JDK 지정

수정한 허드슨 플러그인을 구축하려고 하는데 jdk1.6시 30분괜찮은데 어떻게 다른 jdk가 어디 있는지 모르겠어.인터넷에서 몇 가지 언급을 찾았지만 나에게는 해당되지 않는 것 같다.에서는 설정 하고 있습니다..m2/settings.xml 나는 지만 a a a 가 없다.settings.xml또한 모든 메이븐 빌드에 1.6을 사용하고 싶지 않습니다.

한 가지 한 점은 '''를하고 있다는 것이다.mvn이그사 을 할 수 , 폼은 비어 .프로젝트 폼파일로 스펙을 작성할 수 있을 것 같습니다만, 기존의 폼은 거의 비어 있습니다.

즉, maven의 단일 호출에 대해 jdk를 지정할 수 있는 방법이 있습니까?

즉, maven의 단일 호출에 대해 jdk를 지정할 수 있는 방법이 있습니까?

으로 값을 합니다.JAVA_HOME환경 변수입니다.

현재 maven은 다른 JDK를 사용한 소스 컴파일이라는 솔루션을 제공하고 있는 것 같습니다.

를 당신의 ★★★★★★★★★★★★★★★★★★★★★★★★★★.JAVA_HOMEJDK7(JDK7).

의 ★★★★★★★★★★★★★★★★★.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>

을 추가커스터마이즈).settings.xmlPOM pom pom 은 pom pom pom pom 。

<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>

컴파일: 사용자 속성을 사용하여 에 대한 경로를 지정할 수 있습니다.javac.

이 사용자 속성은 다음 경우에만 작동합니다.forktrue, 「」입니다.false기본적으로.디폴트입니다.

$ mvn -Dmaven.compiler.fork=true -Dmaven.compiler.executable=/path/to/the/javac compile

공백이 포함된 경우 값을 이중따옴표로 묶어야 할 수 있습니다.

> mvn -Dmaven.compiler.fork=true -Dmaven.compiler.executable="C:\...\javac" compile

Maven 사용자 지정 속성 우선 순위도 참조하십시오.

"게다가 모든 메이븐 빌드에 1.6을 사용하고 싶지는 않습니다."라고 말씀하셨습니다.pom 파일을 수정하고 사용할 jdk 버전을 지정하도록 하겠습니다.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.9</source>
                <target>1.9</target>
            </configuration>
        </plugin>
    </plugins>
</build>

그러면 특정 프로젝트에서 해당 버전의 jdk를 사용할 수 있습니다.

나는 당신이 네가 셋업하고 setup 말한다.JAVA_HOME파스칼처럼 환경 변수: 말하고 있습니다.Pascal과다음과 같습니다 환경변수는 같은.시그윈에서 만약에 당신이 당신의 껍질어야 한다:파티를 사용한다.Cygwin에서 bash를 셸로사용하는 경우:

export JAVA_HOME=/cygdrive/c/pathtothejdk

Java를 추가하는 것도 나쁘지 않습니다.bin그 디렉토리 경로에 디렉터리 경로PATH과 환경 변수:환경변수:

export PATH=${JAVA_HOME}/bin:${PATH}

또한 추가를 추가하maven-enforce-plugin올바른 자바 개발 키트 사용되는지 확인하려면.올바른 JDK가 사용되고있는지 확인합니다.당신의 pom를 위한 좋은 행동이다.이것은 당신의 폼을 위한 좋은 연습입니다.

<build>
 <plugins>
   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-enforcer-plugin</artifactId>
      <executions>
        <execution>
          <id>enforce-versions</id>
          <goals>
            <goal>enforce</goal>
          </goals>
          <configuration>
            <rules>
              <requireJavaVersion>
                <version>1.6</version>
              </requireJavaVersion>
            </rules>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Maven Enforcer 플러그인 사용법을 참조하십시오.

오래된 줄 알아요.그러나 Maven for Java 8 컴파일러 소스에서 이와 유사한 문제가 발생했습니다.저는 이 기사에서 언급한 빠른 수정으로 이 문제를 해결했습니다. 여기에 두면 다른 사람에게 도움이 될 수 있다고 생각했습니다.

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

를 사용해 를 하고 .brewMacJava ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」

/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

는 어떤 것이 더 좋은지 입니다.Java Home이치노합니다.
mvn -version

여기서 이미지 설명을 입력하

을 가지고 있는 는 다음과 같습니다.Java version ★★★★★★★★★★★★★★★★★」runtime.

은 현재 을 가리키고 .Java 13키 , Java Home 패스는 다음과 같습니다.
/usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home

하려면 maven Java를 .Java 8의 홈 JAVA_HOMEvariable . env 수 。

.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home터미널에 있습니다.

이제 maven 버전을 보면 Java 8을 가리키고 있음을 알 수 있습니다.

여기서 이미지 설명을 입력하

문제는 새 단말기에서 maven 버전을 다시 확인하면 Java 13을 가리키고 있다는 것입니다. 위해서 저는 '이렇게 하다'를 붙이는 을 추천합니다.JAVA_HOME the variable in 수 variable 。~/.profilefilename을 클릭합니다.

됩니다.은 이 행에 행입니다.~/.profile 일::
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

버전Maven 버전)을 할 수 .mvn -version는, 을 가리키고 을 알 수 Java 8 을을을을을을을을을 8을 。

Maven은 변수 $JAVACMD를 최종 Java 명령으로 사용하며, Java 실행 파일이 있는 곳으로 설정하면 다른 JDK로 전환됩니다.

또한 Hudson에서는 여러 Java 런타임도 정의할 수 있으며, 이 중 하나를 사용하여 Maven을 호출할 수 있습니다.설정 페이지를 자세히 살펴봅니다.

여러 jdk 버전을 관리하는 또 다른 대안으로 jEnv가 있습니다.

설치 후 다음과 같이 특정 프로젝트 디렉토리의 Java 버전을 "로컬"로 변경할 수 있습니다.

jenv local 1.6

mvn 플러그인을 활성화하면 mvn이 해당 버전을 로컬로 사용하게 됩니다.

jenv enable-plugin maven

, 홈 「Maven JDK」의 를 .~/.mavenrc:

JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home'

이 환경변수는 mvn 스크립트에 의해 확인되며 존재하는 경우 사용됩니다.

  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi

https://github.com/CodeFX-org/mvn-java-9/tree/master/mavenrc

Windows 7의 Eclipse에서 maven을 빌드하는 데 문제가 있었습니다.

mvn 빌드는 명령줄에서 정상적으로 실행되고 있었습니다.

mvn -T 5 -B -e -X -U -P test clean install -Dmaven.surefire.debug  --settings ..\..\infra-scripts\maven-conf\settings.xml   > output.log

Eclipse는 기본 JVM으로 JDK 대신 JRE 설치를 고려 중이었기 때문에 컴파일에 실패했습니다.

다음 행에 eclipse.ini를 추가했습니다.

-vm
C:\Program Files (x86)\Java\jdk1.8.0_25\bin

또한 일식을 시작할 때 다음 목록에서 "목표" 섹션을 사용했습니다.

-T 5 -B -e -X -U -P test clean install -Dmaven.surefire.debug  --settings ..\..\infra-scripts\maven-conf\settings.xml

컴파일 오류가 해결되었습니다.

Java 9의 경우:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>9</source>
                <target>9</target>
            </configuration>
        </plugin>
    </plugins>
</build>

JAVA_를 설정한 후에도 아무것도 동작하지 않는 경우올바른 패스로의 HOME, JAVA_의 오버라이드가 없는지 확인합니다.홈 패스<user>/.mavenrc!

또 다른 힌트로서mvnbash」(Linux) 「」(Linux」)이다., 그것을 변경)을 조사할 수 .따라서 필요에 따라 소스를 검사하고 변경할 수 있습니다.

언급URL : https://stackoverflow.com/questions/2503658/specify-jdk-for-maven-to-use

반응형