tutorial mvn java maven

java - mvn - maven windows



Compilando el código de Java 7 vía Maven (18)

Mis listas de archivos pom

<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> ...

Sin embargo, cuando mvn clean install , obtengo

[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 es (lo which java señala aquí)

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 también apunta a la versión correcta de Java

/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac

En esta máquina, estoy usando zsh ( echo $0 returns -zsh )

En mi .zshrc , he definido:

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

Cuando estoy ejecutando mvn clean install --debug veo que, de hecho, uso 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

¿Dónde podría definirse? Tengo la fuente (d) my .zshrc varias veces.


¿Podría probar un plugin más nuevo? en el sitio de maven:

<version>3.0</version>

Vi lo siguiente también:

<compilerVersion>1.7</compilerVersion>


Compruebe el script mvn en su instalación de maven para ver cómo se está construyendo el comando. Quizás usted u otra persona haya codificado un JAVA_HOME ahí y lo haya olvidado.


Debes verificar la versión de Maven:

mvn -version

Encontrarás la versión de Java que Maven usa para la compilación. Es posible que deba restablecer JAVA_HOME si es necesario.


Diagnóstico:

Puedes ver qué versión de Java utiliza Maven ejecutando "mvn --version"

Solución para Debian:

El script mvn establece la variable de entorno JAVA_HOME internamente al buscar javac (que javac). Por lo tanto, si tiene múltiples versiones de Java instaladas simultáneamente, por ejemplo, JDK 6 y JDK 7 y usa el sistema Debian Alternatives para elegir entre ellas, aunque haya cambiado la alternativa de "java" a JDK 7, mvn aún usará JDK 6. Usted tiene que cambiar la alternativa para "javac" también. P.ej:

# update-alternatives --set javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac

EDITAR:

En realidad, una solución aún mejor es usar update-java-alternatives (ej.)

# update-java-alternatives -s java-1.7.0-openjdk-amd64

como se detalla en https://wiki.debian.org/JavaPackage , porque esto cambiará todas las alternativas a varias herramientas de Java (hay una docena más o menos).


Haga clic derecho en su proyecto en eclipse y abra "Ejecutar Configuraciones". Verifique la versión de JRE allí. algunas veces esto no cambiará de manera predeterminada en eclipse, incluso después de cambiar la versión en buildpath.


Intente cambiar la configuración del compilador de Java en Propiedades en Eclipse-

Ir a: Preferencias-> Java-> Compilador-> Nivel de cumplimiento del compilador-> 1.7 Aplicar Ok

Reinicie IDE.

Confirme la configuración del compilador para el proyecto: Ir a: Propiedades del proyecto-> Compilador de Java-> Deseleccionar (Usar conformidad desde el entorno de ejecución ''JavaSE-1.6'' en la ruta Java Build.) Y seleccionar 1.7 del menú desplegable. (Ignore si ya es 1.7)

Reinicie IDE.

Si el problema persiste: ejecute casos de prueba individuales usando el comando en terminal-

mvn -Dtest=<test class name> test


Ninguna de las respuestas anteriores resolvió completamente mi caso de uso.

Necesario para eliminar el directorio que se estaba construyendo. Limpiar. Y luego reinstalar. Parece un problema de permisos silenciosos.


No estoy seguro de qué sistema operativo está en uso aquí, pero puede eliminar una gran cantidad de versiones de Java futzing un debian / ubuntu con update-java-alternatives para establecer el sistema jvm predeterminado.

#> 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

Para establecer uno nuevo, use:

#> update-java-alternatives -s java-7-oracle

No es necesario configurar JAVA_HOME para la mayoría de las aplicaciones.


Ok, solo resolví este problema yo solo también. Es más importante que JAVA_HOME, si no tiene una versión inferior o ninguna en comparación con las propiedades de origen / destino del complemento Maven, obtendrá este error.

Asegúrese de tener una buena versión en su JAVA_HOME y tenerlo incluido en su RUTA.


Para una compilación específica que requiera una JVM (no predeterminada /etc/alternatives/java ), considere mvn como prefijo el comando mvn con JAVA_HOME ,

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ mvn package

Aquí suponemos que el valor predeterminado es Java 8, mientras que para el proyecto específico a mano necesitamos Java 7.


Por favor, compruebe que pom.xml para las etiquetas a continuación

<properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties>

debe señalar la versión jdk requerida


Puede estar especificando una versión incorrecta de java. java -version (en su terminal) para verificar la versión de java que está utilizando. Vaya a maven-compile-plugin para obtener la última versión del compilador de maven. Su complemento puede aparecer así si está usando java 6 y la última versión del plugin de maven compiler es 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>



Tuve este problema al trabajar con eclipse, tuve que cambiar la ruta de compilación del proyecto para que se refiera a jre 7


Tuve este problema en IntelliJ IDEA 14 hasta que entré en el menú Archivo -> Estructura del proyecto, cambiando el SDK del proyecto a 1.7 y el nivel de idioma del proyecto a 7.


Yo tuve el mismo problema. Descubrí que esto se debe a que el script Maven mira el enlace CurrentJDK a continuación y encuentra un 1.6 JDK. Incluso si instala el último JDK, esto no se resuelve. Si bien podría establecer JAVA_HOME en su script $ HOME / .bash_profile, elegí reparar el enlace simbólico en su lugar de la siguiente manera:

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

Observe que CurrentJDK apunta a 1.6.0.jdk

Para solucionarlo, ejecuté los siguientes comandos (debe verificar su versión instalada y adaptarla en consecuencia).

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


intente usar una versión más nueva del plugin de compilador maven:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>

Además, especificar la codificación del archivo fuente en maven se realiza mejor a nivel mundial:

<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>

EDITAR : Como esta respuesta sigue llamando la atención, me gustaría señalar que los últimos valores (a partir de la última edición) son 3.2 para el plugin maven compiler y 1.8 para java, ya que las preguntas sobre la compilación del código java 8 vía maven están obligadas a aparecer pronto :-)


{JAVA_1_4_HOME} / bin / javacyou puede intentar también ...

<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>