2013-06-20 3 views
4

에 JDK 1.7 나는 다음과 같은 오류 얻을 메이븐과 함께 프로젝트를 컴파일하려고 :메이븐 & 맥

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project webserverlog: Compilation failure 
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 
[ERROR] -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project webserverlog: Compilation failure 
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 

내 JAVA_HOME은 JDK를 가리키는 :

$ echo $JAVA_HOME 
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 

$ $JAVA_HOME/bin/javac -version 
javac 1.7.0_25 
javac: no source files 
Usage: javac <options> <source files> 

아니에요을

$ mvn --version 
Apache Maven 3.0.4 (r1232337; 2012-01-17 18:44:56+1000) 
Maven home: /Users/jerry/dev/springsource/apache-maven-3.0.4 
Java version: 1.7.0_25, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac" 

나는 이렇게 검색 한 : 메이븐은 JAVA_HOME의 끝에 '/ JRE를'추가하지만 다른 게시물을 보면이 문제가 될 것 같지 않는 이유를 확인 이 문제에 대한 해결책을 찾고 며칠 동안 여러 가지 일을 시도했지만 효과가있는 것은 찾지 못했습니다. 비슷한 문제가있는 스레드를 보았지만 제안 된 사항이 없습니다.

누구든지 해결 방법을 알고 있습니까? 어떤 도움을 크게 감사드립니다 ...

+0

콘솔에서 실행을 시도하십시오 :'/ usr/libexec/java_home', 그것은 무엇을 반환합니까? –

+0

'/ Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home'을 얻습니다. – Jerry

+0

이 라이브러리는/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home'에 존재합니까? 이것은'/ System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home'과 다릅니다. –

답변

3

JDK의 실제 경로는 CurrentJDK 리터럴을 떠나지 않고 JAVA_HOME 변수에 지정해야합니다. Mac OS X에서 어떤 이유로 인해 CurrentJDK는 Maven과 관련된 실제 파일을 가리키고 있지 않습니다. 당신의 .profile에 이런 식으로 뭔가를 시도하지만, 당신에게 실제 JDK 폴더 이름을 교체 :

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home 
+3

새 JAVA_HOME = "$ (/ usr/libexec/java_home)"'을 사용하여 새 부 버전을 설치할 때마다이 문제를 업데이트하지 않아도됩니다. –

+0

좋은 지적 이안 !! –

+0

내 문제를 해결하는 데 도움이되었습니다. 나 같은 다른 n00bs에서이 문제가 발생하면 홈 폴더에있는 .profile 또는 .bash_profile 파일 (예 :'nano ~/.profile')을 편집하고 @ IanRoberts의 주석에'export' 행을 추가해야합니다. 새 줄을 입력 한 다음 ctrl + x를 눌러 파일을 저장하고 종료하십시오. – yochannah

0

참고로, "아니오 소스 파일"의 한 원인 디스크 공간이 곳 TMP 포인트의 부족입니다.

TEMP/TMP/TMDIR에 일부 항목을 저장하고 해당 디렉터가없는 경우 공간이 부족하고 사용 권한이 부족한 경우 해당 문제를 볼 수 있습니다. 적어도 우리는 창문에서 그랬고 나는 더 나은 운영체제에서도 이런 일이 일어날 것이라고 생각합니다.