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_HOME
JDK7(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.xml
POM 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
.
이 사용자 속성은 다음 경우에만 작동합니다.fork
true
, 「」입니다.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>
를 사용해 를 하고 .brew
Mac
Java ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
/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_HOME
variable . env 수 。
.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
터미널에 있습니다.
이제 maven 버전을 보면 Java 8을 가리키고 있음을 알 수 있습니다.
문제는 새 단말기에서 maven 버전을 다시 확인하면 Java 13을 가리키고 있다는 것입니다. 위해서 저는 '이렇게 하다'를 붙이는 을 추천합니다.JAVA_HOME
the variable in 수 variable 。~/.profile
filename을 클릭합니다.
됩니다.홈은 이 행에 행입니다.~/.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
!
또 다른 힌트로서mvn
「bash」(Linux) 「」(Linux」)이다., 그것을 변경)을 조사할 수 .따라서 필요에 따라 소스를 검사하고 변경할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2503658/specify-jdk-for-maven-to-use
'programing' 카테고리의 다른 글
[Vue warn] :렌더 오류: "TypeError: 정의되지 않은 속성 'xxx'를 읽을 수 없습니다." (0) | 2022.08.08 |
---|---|
Laravel Sanctum - 사용자 베스트 프랙티스 로그인 (0) | 2022.08.07 |
java.util 변환 방법날짜: java.sql.Date? (0) | 2022.08.07 |
Vue 없이 Vue를 사용할 수 있습니까? (Vuex 서버 측) (0) | 2022.08.07 |
그 sizeof(enum)== sizeof(int), 항상? (0) | 2022.08.07 |