Maven에서 사용할 JDK 지정
내가 수정 한 Hudson을 만들려고 만들려고 jdk1.6이 필요합니다. 이 괜찮지 만 다른 jdk가 어디에 있는지 maven에게 어떻게 알 수 있는지 알 수 없습니다. 인터넷에서 존재하지 않는 것입니다. 일부는 일부 구성을 추가하는 것이 .m2/settings.xml
좋지만에 없습니다 settings.xml
. 또한 모든 메이븐 빌드에 1.6을 사용하고 싶지 않습니다.
하나의 꼬임은 mvn
cygwin에서 사용 하고있는 것입니다. 프로젝트 pom 파일에서 사양을 만들 수 없습니다.
결론은 maven의 단일 호출에 대해 jdk를 지정하는 방법이 있습니까?
결론은 maven의 단일 호출에 대해 jdk를 지정하는 방법이 있습니까?
을 일시적으로 변경하십시오 JAVA_HOME
.
이제 해결책을 제시합니다. : 다른 JDK를 사용하여 소스를
JAVA_HOME
JDK7 (maven)을 사용 하면 가정 해 보겠습니다.
당신 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
플랫폼에 독립적입니다.
<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 사용자 정의 특성 우선 순위 도 참조하십시오 .
"플러스, 모든 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를 사용하는지 확인합니다.
Pascal과 JAVA_HOME을 설정합니다. bash를 쉘로 사용하는 경우 cygwin에서 "export JAVA_HOME = / cygdrive / c / pathtothejdk"통하며 "export PATH를 사용하여 java bin dir을 PATH로 있고 문제가 없습니다. = $ {JAVA_HOME} / bin : $ { 경로} "
또한 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>
http://maven.apache.org/plugins/maven-enforcer-plugin/usage.html
나는 그것의 오래된 실을 안다. 하지만 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>
Maven은 $ JAVACMD 변수를 최종 Java 명령으로 사용하고 Java 실행 파일이 Maven을 다른 JDK로 전환하는 위치로 설정합니다.
Hudson을 사용하면 여러 Java 실행을 정의하고 이들 중 하나를 사용하여 Maven을 호출 할 수 있습니다. 구성 페이지를 자세히 살펴 봅니다.
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>
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는 JDK 대신 JRE 설치를 기본 JVM으로 고려할 것이 때문에 실패했습니다.
다음 줄에 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
오류가 해결되었습니다.
참고 URL : https://stackoverflow.com/questions/2503658/specify-jdk-for-maven-to-use
'IT' 카테고리의 다른 글
HashBytes를 VarChar로 변환 (0) | 2020.07.14 |
---|---|
현재 머큐리얼 리비전 해시를 인쇄 하시겠습니까? (0) | 2020.07.14 |
기존 값보다 큰 값이 처음으로 나타남 (0) | 2020.07.14 |
Windows CMD에서 재귀 적으로 파일 또는 폴더 삭제 (0) | 2020.07.14 |
Angular2- 라디오 버튼 바인딩 (0) | 2020.07.14 |