java - para - Maven 3 problema de artefactos
maven eclipse photon (9)
Hice un nuevo proyecto de struts en eclipse usando struts2-archtype-starter.
Algunos errores ya estaban en mi proyecto antes de hacer algo. Resolvió la mayoría de ellos pero hay 1 que aún me dan algunos problemas.
Missing artifact com.sun:tools:jar:1.5.0:system pom.xml
Intenté agregar tools.jar a mi repositorio manualmente, pero eso no solucionó el problema.
Mi pom se ve así
<?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>com.divespot</groupId>
<artifactId>website</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>E-Divespot diving community</name>
<url>http://www.e-divespot.com</url>
<description>A website to support divers from all around the world.</description>
<dependencies>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<!-- Struts 2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.0.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-sitemesh-plugin</artifactId>
<version>2.0.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.0.11.2</version>
</dependency>
<!-- Servlet & Jsp -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- Jakarta Commons -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.1.1</version>
</dependency>
<!-- Dwr -->
<dependency>
<groupId>uk.ltd.getahead</groupId>
<artifactId>dwr</artifactId>
<version>1.1-beta-3</version>
</dependency>
</dependencies>
<build>
<finalName>website</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.5</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
</configuration>
</plugin>
</plugins>
</build>
</project>
Confusamente, la propiedad $ {java.home} en realidad resolverá su valor desde la variable de entorno JRE_HOME .
http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide (busque java.home)
Si no desea cambiar JAVA_HOME a la raíz de jre, entonces cree la variable JRE_HOME en su lugar.
El ejemplo de eclipse.ini:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:/Java/JDK/1.6/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx1024m
-vm value: Linux Ejemplo:
-vm
/opt/sun-jdk-1.6.0.02/bin/java
El error que está viendo probablemente se deba a que su ruta JAVA_HOME no está configurada correctamente. ¿Ves algo así como C:/{directories to jre}/../lib/tools.jar
?
Puedes hacer que eclipse se inicie usando tu JDK incorporado al alterar el eclipse.ini y agregar algo como
-vm
C:/{directories to JDK}/bin/javaw.exe
Lo que he aprendido es que el eclipse por defecto usará el sistema jre para comenzar el eclipse. Probablemente hayas visto un mensaje al iniciar eclipse similar a "Eclipse se está ejecutando bajo un JRE y m2eclipse requiere un JDK; algunos complementos no funcionarán"
Si vas a (en eclipse) Ayuda -> Detalles de instalación y buscas un -vm probablemente lo verás apuntando a un lugar que no tiene la estructura de ruta que está esperando.
Nota: Por alguna razón, cuando encontré este problema, se evaluó java.home en maven desde donde se lanzó el eclipse. Por lo tanto, cuando intenta extraer tools.jar de lo que ve como java.home, puede que no sea lo que realmente configura como JAVA_HOME como una variable env / system.
El problema principal es que el mavan no puede reparar la herramienta .jar. por lo que este problema ocurre, simplemente agrega el archivo tool.jar en tu proyecto. El Tool.jar presente en tu software java C: / Program Files / Java / jdk1.6.0_14 / lib
prueba este código, espero que lo ejecutes con éxito http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 Strust2Testing Strust2Testing 0.0.1-SNAPSHOT war org.apache.struts
<artifactId>Struts2-core </artifactId>
<version>2.3.15.1</version>
<exclusions>
<exclusion>
<artifactId>tools</artifactId>
<groupId>com.sun</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
Habiendo tenido el mismo problema recientemente, ninguna de las soluciones anteriores funcionó para mí. Me encontré con http://blog.samratdhillon.com/archives/598 y pensé que era el error Eclipse mencionado allí.
Tuve que eliminar todas las jre
instaladas de la configuración de Eclipse (Window -> Preferences -> Java -> Installed JREs)
y solo mantener exactamente una jdk. Después de eso, maven funcionó perfectamente sin ninguna modificación de eclipse.ini
o cualquier otra cosa. Esto es con la versión 1 del servicio de Ecpise Indigo.
Necesita agregar otra respuesta. Después de actualizar m2e a 1.4.20130601-0317, el error volvió. De nuevo, ninguna de las soluciones propuestas funcionó, incluida la que acabo de proponer. Eventualmente, encontré al culpable: incluyendo org.htmlparser:1.6
tenía una dependencia implícita en tools.jar
. No tenía idea de por qué eliminar los jre instalados ayudaba con el m2e anterior (1.0.a algo). Ahora la solución es excluir tools.jar
:
<dependency>
<groupId>org.htmlparser</groupId>
<artifactId>htmlparser</artifactId>
<version>1.6</version>
<exclusions>
<exclusion>
<artifactId>tools</artifactId>
<groupId>com.sun</groupId>
</exclusion>
</exclusions>
</dependency>
No puede usar tools.jar desde un repositorio.
Lamentablemente, algo en su árbol de dependencia cree que puede. Por lo tanto, debe usar una ''exclusión'' para deshacerse de la dependencia existente y luego reemplazarla con lo siguiente.
Si hace que la versión en la coincidencia a continuación que en el mensaje de error, es posible que no necesite los ''excluye''.
Necesitas:
<profiles>
<profile>
<id>default-tools.jar</id>
<activation>
<property>
<name>java.vendor</name>
<value>Sun Microsystems Inc.</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>whatever</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</profile>
sudo apt-get install openjdk-7-source
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
<exclusions>
<exclusion>
<artifactId>tools</artifactId>
<groupId>com.sun</groupId>
</exclusion>
</exclusions>
</dependency>