2015-01-20 14 views
9

Próbuję uruchomić test automatyzacji na komputerze Mac. Zainstalowałem Maven i Java, JDK w następujący sposób:javac: nieprawidłowa wersja docelowa: 1.8 na Macu podczas wykonywania polecenia Mavena

java version "1.8.0_25" 
Java(TM) SE Runtime Environment (build 1.8.0_25-b17) 
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) 

i Maven:

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T18:29:23+01:00) 
Maven home: /usr/local/Cellar/maven/3.2.5/libexec 
Java version: 1.6.0_65, vendor: Apple Inc. 
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 
Default locale: en_US, platform encoding: MacRoman 
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac" 

Kiedy wykonywane polecenie Maven, mam ten błąd:

[ERROR] Failure executing javac, but could not parse the error: 
[ERROR] javac: invalid target release: 1.8 
[ERROR] Usage: javac <options> <source files> 
[ERROR] use -help for a list of possible options 
[ERROR] -> [Help 1] 

I przeszukiwane na tutaj, istnieje jedno akceptowane rozwiązanie:

sudo cp $JAVA_HOME/lib/tools.jar /Library/Java/Extensions/ 

Wykonałem to polecenie, ale nic się nie wydarzyło! Nie wiem co jest źle.

+0

Jakie są wyjścia z 'których java' i' echo $ JAVA_HOME'? – stevecross

+0

Ulepszono aktualizację z Maven z wersji 3.2.5 do 3.3.3. – Benj

Odpowiedz

22

po pierwsze, dowiedzieć się, gdzie jest zainstalowane Java 1.8, uruchamiając komendę:

/usr/libexec/java_home -v 1.8 

Następnie ustawić zmienną środowiskową JAVA_HOME uruchamiając c ommand:

export JAVA_HOME=<whatever the output from the previous command was> 

Maven powinien działać później, przynajmniej w tym oknie terminalu.

Musisz ustawić zmienną środowiskową JAVA_HOME w swoim profilu, jeśli nie chcesz uruchamiać tych poleceń za każdym razem, gdy otwierasz nowy terminal.

+0

Dziękuję, uratowałeś mój dzień :) – Ragnarsson

3

Jeśli jeszcze tego nie zrobiłeś, użyj maven-compiler-plugin, aby określić wersję Java, która będzie używana w Maven. Umieścić to w pliku pom.xml (zmienić wersję <source/> i <target/> wersji JDK jest potrzebna):

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

(Jeśli masz już <build/> i/lub <plugins/> Sekcja, dodać część <plugin/> tylko).