programing

Maven을 통한 Java 7 코드 컴파일

lovecodes 2022. 7. 28. 23:49
반응형

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

반응형