estoy usando Maven 3.0.5 y Spring Tool Source 3.2 con el complemento Maven instalado. Cuando intento hacer 'Ejecutar como ---> Instalación de Maven', aparece el siguiente error:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Spring Social Twitter4J Sample 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-war-plugin:jar:2.1.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ spring-social-twitter4j ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 15 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ spring-social-twitter4j ---
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
Jun 21, 2013 2:14:32 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
WARNING: Error injecting: org.apache.maven.plugin.CompilerMojo
**java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/CompilerException**
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getDeclaredConstructors(Unknown Source)
at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:98)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:831)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:758)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:255)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:204)
at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:954)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:987)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:950)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:455)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.compiler.CompilerException
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
... 54 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Fri Jun 21 02:14:32 IST 2013
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
**[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project spring-social-twitter4j: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile: org/codehaus/plexus/compiler/CompilerException**
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.apache.maven.plugins:maven-compiler-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/SS%20Computer/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
[ERROR] urls[1] = file:/C:/Users/SS%20Computer/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: org.codehaus.plexus.compiler.CompilerException
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
Encuentre a continuación mi pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.social.samples</groupId>
<artifactId>spring-social-twitter4j</artifactId>
<name>Spring Social Twitter4J Sample</name>
<packaging>war</packaging>
<version>1.0.0</version>
<properties>
<java-version>1.6</java-version>
<org.springframework.social-version>1.1.0.BUILD-SNAPSHOT</org.springframework.social-version>
<org.springframework-version>3.2.1.RELEASE</org.springframework-version>
<org.springframework.security-version>3.1.3.RELEASE</org.springframework.security-version>
<org.slf4j-version>1.7.2</org.slf4j-version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${org.springframework.security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>${org.springframework.social-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-web</artifactId>
<version>${org.springframework.social-version}</version>
</dependency>
<!-- Twitter4J -->
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.2.3</version>
</dependency>
<!-- JSR 303 with Hibernate Validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.159</version>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- CGLIB, only required and used for @Configuration usage -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.2</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>org.springframework.maven.release</id>
<name>Spring Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<!-- For testing against latest Spring snapshots -->
<repository>
<id>org.springframework.maven.snapshot</id>
<name>Spring Maven Snapshot Repository</name>
<url>http://maven.springframework.org/snapshot</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- For developing against latest Spring milestones -->
<repository>
<id>org.springframework.maven.milestone</id>
<name>Spring Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>spring-social-twitter4j</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
</plugin>
</plugins>
</build>
</project>
Durante la instalación de Maven, mi objetivo es war:war
hacer WAR de mi aplicación.
java
maven-3
maven-compiler-plugin
Rushi Shah
fuente
fuente
Respuestas:
Eliminar completo
.m2/repository
repositorio local resolvió mi problema.O bien, necesita saber qué complementos está utilizando exactamente con sus dependencias, ya que uno de los complementos sufrió un problema durante la descarga.
fuente
.m2/repository
para no eliminarsettings.xml
en.m2
dirrm -rf rm -rf ~/.m2/repository/org/apache/
funciona para mi.Eliminar el repositorio local completo .m2 también resolvió mi problema.
Si no sabe dónde está, las ubicaciones son:
fuente
%USERPROFILE%
le llevará a su directorio de perfil donde.m2
se encuentra la carpeta.Estoy agregando más puntos a la solución por @Rushi Shah
mvn clean install -X
Ayuda a identificar la causa raíz.Algunas de las fases importantes del ciclo de vida de construcción de Maven son:
clean
- el proyecto está limpio de todos los artefactos que provienen de compilaciones anteriorescompile
- el proyecto se compila en el directorio / target de la raíz del proyectoinstall
- el archivo empaquetado se copia en el repositorio local de Maven (podría en el directorio de inicio de su usuario en /.m2)test
- las pruebas unitarias son correrpackage
: las fuentes compiladas se empaquetan en el archivo (JAR de forma predeterminada)La etiqueta 1.6 debajo se refiere a la versión JDK. Necesitamos asegurarnos de que la versión jdk sea adecuada en nuestro entorno de desarrollo o cambiar el valor a 1.7 o 1.5 o lo que sea si la aplicación puede ser compatible con esa versión JDK.
Podemos encontrar los detalles completos sobre el ciclo de vida de construcción de Maven en el sitio de Maven.
fuente
Tuve el mismo problema, verifique el jre instalado utilizado por Maven en su Configuración de ejecución ...
En su caso, creo que el plugin maven-compiler: jar: 2.3.2 necesita un jdk1.6
Para hacer esto: Ejecute Configuración> YOUR_MAVEN_BUILD> JRE> JRE alternativo
Espero que esto ayude.
fuente
A veces se debe a que el proyecto apunta a JRE en lugar de a JDK. Intente esto,
1.Haga clic derecho en el proyecto -> Ruta de compilación -> Configurar ruta de compilación -> Agregar biblioteca -> Biblioteca del sistema JRE -> Entornos -> JRE instalados -> Apunte a la carpeta Java en c: unidad (Windows ) y seleccione la carpeta JDK y ok.
2. Retire el JRE ya presente de la ruta de compilación.
fuente
Por lo general, definir maven-compiler-plugin es suficiente. agregue lo siguiente a la definición del complemento del compilador.
fuente
A veces, este problema se produce porque el java.version que ha mencionado en POM.xml no es el que está instalado en su máquina.
Asegúrese de mencionar exactamente la misma versión en su pom.xml que la versión jdk y jre presente en su máquina.
fuente
Tuve este problema una vez, y así es como lo resolví:
mvn clean verify
) desde el terminal en la ubicación actual del proyecto (donde existe el archivo pom.xml de su proyecto) en lugar de ejecutar maven desde eclipse.fuente
En realidad, si no desea eliminar su .m2 / repositorio / ... local y tiene una copia descargada de Maven de Apache, puede hacer que Eclipse / STS use ese Maven externo y puede editar el {maven} \ conf \ settings.xml para apuntar su repositorio local a una nueva ubicación vacía.
Por supuesto, tendrá un nuevo repositorio con todas las descargas de fuentes de Maven además de su ubicación anterior .m2.
fuente
verifique la
endorsed.dir
etiqueta de propiedad en supom.xml
.También tuve este problema y lo solucioné modificando la propiedad.
Ejemplo:
fuente
fuente
Para mí, reiniciar Eclipse eliminó este error.
fuente
Creo que tienes dos formas de resolver este problema.
01. Establecer propiedades
02. Eliminar el archivo .m2
Si no puede resolver su problema utilizando los dos temas anteriores, obtenga esta acción Cierre su proyecto. Elimine su carpeta completa .m2
Cómo multar un archivo .m2 (windows)
fuente
Java 9 incompatible
Recibí este error al intentar llamar
mvn install
a un proyecto.Había instalado Java 9 en macOS, así como Java 8 Update 144. Aparentemente, mi proyecto Maven invocaba Java 9 y fallaba. Eliminé Java 9 de mi Mac, dejando solo Java 8 en su lugar. Maven ahora está felizmente construyendo mi proyecto para completarlo con éxito.
Usando Apache Maven 3.5.0 en macOS Sierra.
fuente
Tal vez pueda agregar esta dependencia a su pom.xml. Yo uso este método y resuelvo el problema!
fuente
para los nuevos usuarios en Mac os, busque la carpeta .m2 y elimínela, está en su directorio /Users/.m2 .
no podrá ver la carpeta .m2 en el buscador (Explorador de archivos), para este usuario este comando muestra los archivos ocultos de Mac
$ por defecto escribe com.apple.finder AppleShowAllFiles TRUE
después de esto, presione alt y haga clic en Finder-> relanzar, puede ver /Users/.m2
para ocultar archivos nuevamente, simplemente use este $ defaults write com.apple.finder AppleShowAllFiles false
fuente
Cambié el nombre del directorio .m2, esto todavía no ayudó, así que instalé el sdk / jdk más nuevo y reinicié eclipse. Esto funcionó.
Parece que se necesitaba un SDK y solo había instalado un JRE.
Lo cual es extraño, porque eclipse funcionó en la misma máquina para un proyecto anterior diferente.
Importé un segundo proyecto maven, y la instalación Run / maven solo se completó después de reiniciar eclipse. Entonces tal vez solo fue necesario reiniciar el eclipse.
Importé otro proyecto más, y tuve que hacerlo
maven install
dos veces antes de que funcionara a pesar de que había reiniciado eclipse.fuente
Es realmente increíble estar obligado a borrar todo el contenido de m2 / repositorio. Sugiero escribir este comando (en Windows):
El último comando habilita la opción de depuración y redirige la salida a un archivo. Abra el archivo y busque las palabras clave ERROR o WARNING. Puedes encontrar este tipo de expresión:
En este caso, es fácil entender que solo tiene que eliminar el directorio C: \ Users \ vifie.m2 \ repository \ net \ java \ jvnet-parent \ 3
Relanzar compilación, empaquetado, etc.
ADVERTENCIA desaparece solo porque elimina el archivo POM dañado en la buena ubicación y puede volver a descargarlo. Normalmente, el nuevo archivo POM es mejor.
A menudo, el modo de depuración le brinda mensajes con detalles más completos.
Por qué redirijo el registro a un archivo: simplemente porque en la consola de Windows no tengo suficiente búfer para almacenar todas las líneas y, a menudo, no puede ver todas las líneas.
fuente
Intentamos todo lo enumerado hasta ahora y todavía falló. El error también mencionó
La solución que finalmente lo solucionó fue agregar esto a POM:
Como se menciona aquí Error al ensamblar WAR: se requiere el atributo webxml
Nuestro POM ahora contiene esto:
fuente
Elimine el código siguiente de pom.xml o corrija su versión de Java para que funcione.
fuente
tuve el mismo problema y además de las configuraciones de las publicaciones anteriores poniendo
en el elemento de complementos en pom.xml. Creo que el problema fue la ausencia de ejecución -> objetivo "endpoints_get_discovery_doc" en algunos casos como el mío, así que esto funcionó para mí.
fuente