Maven을 통한 Java 7 코드 컴파일
내 폼 파일 목록
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
, ★★★에서는mvn clean install
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
/usr/bin/java -version필수)which java★★★★★★★★★★★★★★★★★」
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
javac 올바른 도 나타냅니다.
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac
★★★★★★★★★★★를 사용하고 있습니다.zsh )echo $0-zsh)
의 마마 my에서는.zshrc다음과 같이 합니다.
33 # HOME
34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
35 SCALA_HOME=/Library/Scala/current
36 FORGE_HOME=~/tools/forge/
37
38 # PATH
39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
40 PATH=${PATH}:${JAVA_HOME}/bin
41 PATH=${PATH}:/bin/
42 PATH=${PATH}:/sbin/
43 PATH=${PATH}:/usr/bin/
44 PATH=${PATH}:/usr/sbin/
45 PATH=${PATH}:/opt/local/bin/
46 PATH=${PATH}:/opt/local/sbin/
47 PATH=${PATH}:/usr/local/git/bin
48 PATH=${PATH}:/usr/local/git/sbin
49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
50 PATH=${PATH}:${SCALA_HOME}/bin
51 PATH=${PATH}:${FORGE_HOME}/bin
52
53 export PATH
★★★★★mvn clean install --debug Java 6을.
1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
2 Maven home: /usr/share/maven
3 Java version: 1.6.0_35, vendor: Apple Inc.
4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
어디서 정의할 수 있을까요?.zshrc를 여러 번 사용하고 있습니다.
mvn하고 있는지 합니다.maven 설 、 script script script script script 。 을 했을 이다.JAVA_HOME네, 네.
maven 컴파일러 플러그인의 최신 버전을 사용해 보십시오.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
또한 maven에서 소스 파일 인코딩을 지정하는 것이 글로벌하게 더 좋습니다.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
편집: 이 답변이 여전히 주목을 받고 있기 때문에 최신 값(최신 편집 시점)은 maven 컴파일러 플러그인의 경우 3.2, java의 경우 1.8이라는 점을 지적하고 싶습니다.maven을 통한 Java 8 코드 컴파일에 대한 질문은 곧 나타날 것입니다.
저도 같은 문제가 있었습니다.이 문제를 해결하기 위해 블로그 기사 http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/를 팔로우하고 있습니다.
$ vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
$ source .bash_profile
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
@mkyong에게 특별한 tks
편집: 현재 사용하고 있는 것은 jEnv + sdkman
아래 태그에 대해서는 pom.xml을 확인해 주세요.
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
필요한 jdk 버전을 지정합니다.
Maven 버전을 확인해야 합니다.
mvn -version
Maven이 컴파일에 사용하는 Java 버전을 찾을 수 있습니다.JAVA_를 리셋해야 할 수 있습니다.필요한 경우 홈
저도 같은 문제가 있었어요.Maven 스크립트가 Current를 보기 때문에아래 JDK 링크에서 1.6 JDK를 찾습니다. 최신 JDK를 설치해도 해결되지 않습니다.JAVA_를 설정하기만 하면 됩니다.$HOME/.bash_profile 스크립트에서 HOME 대신 다음과 같이 심볼릭 링크를 수정했습니다.
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.6.0 -> CurrentJDK
drwxr-xr-x 9 root wheel 306 11 Nov 21:20 A
lrwxr-xr-x 1 root wheel 1 30 Oct 16:18 Current -> A
lrwxr-xr-x 1 root wheel 59 30 Oct 16:18 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
주의: 현재1.6.0.jdk의 JDK 포인트
이 문제를 해결하기 위해 다음 명령을 실행했습니다(설치된 버전을 확인하고 그에 따라 적응해야 합니다).
sudo rm /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/ /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
진단:
"mvn --version"을 실행하면 Maven이 사용하는 Java 버전을 볼 수 있습니다.
Debian용 솔루션:
mvn 스크립트는 JAVA_를 설정합니다.HOME env는 javac(javac)을 검색하여 내부적으로 변수입니다.따라서 JDK 6과 JDK 7 등 여러 Java 버전을 동시에 설치하고 Debian Alternative 시스템을 사용하여 둘 중 하나를 선택할 경우 mvn은 "java"의 대체 버전을 JDK 6으로 변경하더라도 "javac"의 대체 버전을 변경해야 합니다.
# update-alternatives --set javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
편집:
실제로는 update-java-alternate를 사용하는 것이 훨씬 더 좋은 해결책입니다(예:
# update-java-alternatives -s java-1.7.0-openjdk-amd64
자세한 내용은 https://wiki.debian.org/JavaPackage,에 기재되어 있습니다.이것에 의해, 다양한 Java 툴의 대체 툴이 모두 바뀝니다(수십 개 정도).
새로운 플러그인을 시험해 볼 수 있습니까?매븐 사이트:
<version>3.0</version>
다음 것도 봤어요.
<compilerVersion>1.7</compilerVersion>
Eclipse의 Properties에서 Java 컴파일러 설정을 변경해 보십시오.
Goto: Preferences -> Java -> Compiler -> Compiler 컴플라이언스 수준 -> 1.7 적용 OK
IDE 를 재기동합니다.
프로젝트의 컴파일러 설정을 확인합니다.- Goto : Project Properties - > Java Compiler - > Use Compliance from execution environment 'Java SE-1.6' on Java Build path)를 끄고 드롭다운에서 1.7을 선택합니다(이미 1.7인 경우는 무시합니다).
IDE 를 재기동합니다.
문제가 해결되지 않는 경우 - 터미널에서 명령을 사용하여 개별 테스트 케이스를 실행합니다.
mvn -Dtest=<test class name> test
여기서 어떤 OS를 사용하고 있는지 확실하지 않지만, 기본 jvm 시스템을 넓게 설정하기 위해 update-java-alternative를 사용하여 undebian/ubuntu에서 많은 Java 버전을 제거할 수 있습니다.
#> update-java-alternatives -l
java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-6-sun 63 /usr/lib/jvm/java-6-sun
java-7-oracle 1073 /usr/lib/jvm/java-7-oracle
새로운 설정을 실시하려면 , 다음의 순서에 따릅니다.
#> update-java-alternatives -s java-7-oracle
JAVA_를 설정할 필요가 없습니다.대부분의 앱에서 홈.
일식의 프로젝트를 오른쪽 클릭하여 "실행 구성"을 엽니다.jre 버전을 확인합니다. 빌드 경로에서 버전을 변경한 후에도 일부 경우 이 버전이 기본적으로 변경되지 않습니다.
이외의 컴파일이/etc/alternatives/java ( ) JVM의 프레픽스를 합니다.mvnJAVA_HOME 이렇게.
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ mvn package
여기서는 기본값이 Java 8이라고 가정합니다만, 특정 프로젝트의 경우 Java 7이 필요합니다.
{JAVA_1_4_}HOME}/bin/javacyou도 시도할 수 있습니다.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<executable>{JAVA_HOME_1_7}/bin/javac</executable>
<fork>true</fork>
</configuration>
</plugin>
네, 저도 방금 이 문제를 혼자 해결했어요.JAVA_가 더 중요합니다.HOME, Maven 플러그인의 소스/타깃 속성과 비교하여 버전이 낮거나 없는 경우 이 오류가 발생합니다.
JAVA_에 적절한 버전이 있는지 확인하십시오.PATH에 포함시켜 주세요.
사용 중인 Java 버전을 확인하기 위해 잘못된 버전의 java.java -version(단말기)을 지정했을 수 있습니다.최신 maven 컴파일러 버전을 보려면 maven-compile-plugin으로 이동하십시오. Java 6을 사용하고 있고 maven 컴파일러 플러그인의 최신 버전이 3.1인 경우 플러그인은 다음과 같이 나타날 수 있습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
지금까지의 답변 중 어느 것도 제 사용 사례를 완전히 해결하지 못했습니다.
빌드하고 있던 디렉토리를 삭제하기 위해서 필요합니다.청소하고 다시 설치합니다.자동 권한 문제인 것 같습니다.
IntelliJ IDEA 14에서 이 문제가 발생했습니다.파일 메뉴 -->프로젝트 구조 -->프로젝트 SDK를 1.7로, 프로젝트 언어 레벨을 7로 변경할 때까지.
이클립스 작업을 할 때 이 문제가 있었습니다.프로젝트의 빌드 경로를 변경하여 jre 7을 참조하도록 해야 했습니다.
언급URL : https://stackoverflow.com/questions/14043042/compiling-java-7-code-via-maven
'programing' 카테고리의 다른 글
| com.bc.jdbc.exceptions.jdbc4 를 지정합니다.통신예외:통신 링크 장애 (0) | 2022.07.28 |
|---|---|
| Vue 3에 Vuex 스토어를 삽입하는 방법 (0) | 2022.07.28 |
| 처음 방문할 때까지 v-tab 내의 구성 요소에서 Vuex 상태를 볼 수 없음 (0) | 2022.07.28 |
| 타이프 스크립트가 콜백의 조건을 검출하지 않음(Vue (0) | 2022.07.28 |
| extern을 사용하여 소스 파일 간에 변수를 공유하려면 어떻게 해야 합니까? (0) | 2022.07.28 |