2010-01-12 25 views
5

Trabajo con un proyecto de maven en eclipse y tengo problemas para hacer que la implementación funcione sin una edición manual de archivos xml.Actualización del archivo .settings/org.eclipse.wst.common.component en un proyecto de maven

Cuando construyo el proyecto a través de maven, obtengo un archivo org.eclipse.wst.common.component xml en mi carpeta .settings. El archivo tiene el siguiente aspecto:

<?xml version="1.0" encoding="UTF-8"?> 
<project-modules id="moduleCoreId" project-version="1.5.0"> 
    <wb-module deploy-name="ins-web">   
     <wb-resource deploy-path="/" source-path="/WebContent"/> 
     <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/java"/> 
     <property name="context-root" value="ins-web"/> 
     <property name="java-output-path"/> 
    </wb-module> 
</project-modules> 

La siguiente línea es la causa del problema:

<wb-resource deploy-path="/" source-path="/WebContent"/> 

Su buscan implementar todo por debajo de la carpeta WebContent cuando en realidad debería estar buscando en src/webapp. Por lo tanto, la línea debe tener este aspecto:

<wb-resource deploy-path="/" source-path="/src/webapp"/> 

Si cambio de forma manual entonces todo funciona bien, pero me gustaría saber si hay una manera de evitar cambiar manualmente el archivo para hacer el proceso más fácil para construir otras personas en mi equipo.

+0

¿Cómo hiciste el proyecto eclipse? Manualmente o por el plugin maven-eclipse? – cetnar

Respuesta

4

Cómo está generando sus archivos de eclipse. ¿Está utilizando el m2eclipse Eclipse plugin o está utilizando el maven-eclipse-plugin? m2eclipse es un complemento para Eclipse, ejecutado dentro de Eclipse. maven-eclipse-plugin es un plugin de Maven que se ejecuta desde la línea de cmd para generar archivos de proyectos de Eclipse basados ​​en tu pom.xml.

Siempre he tenido un mayor éxito usando maven-eclipse-plugin. Los autores de m2eclipse no sugieren que trates de usar ambos complementos juntos.

Si está utilizando el complemento maven-eclipse, debe verificar un par de cosas.

  1. Utilice el último maven-eclipse-plugin versión 2.7.
  2. Asegúrate de que tu proyecto sea un paquete de "guerra"
  3. Configura el maven-war-plugin también y establece el directorio de la fuente de guerra como mejor te parezca. Agregue el siguiente fragmento a su pom.xml. Así es como maven-eclipse-plugin determina dónde vive su webapp.
 
    <plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.1-beta-1</version> 
    <configuration> 
     <warSourceDirectory>src/webapp</warSourceDirectory> 
    </configuration> 
    </plugin> 

Después de hacer estos cambios y funcionando mvn eclipse:clean eclipse:eclipse de nuevo, debería ver el valor esperado en el archivo de componente.

+0

Hola Peter, no estoy usando el plugin maven-eclipse. Ejecuto todos los comandos maven desde la línea de comando. Hice una búsqueda en mi proyecto para un lugar donde establecer "warSourceDirectory" pero no pude encontrar uno ... – Ger

+2

Parece que el plugin maven-eclipse es un plugin de Eclipse que se ejecuta dentro de eclipse. No lo es. Es un plugin Maven ejecutado desde la línea cmd. warSourceDirectory es parte de la configuración de maven-war-plugin que se encuentra dentro de su Maven pom.xml para su proyecto. –

0

Desafortunadamente, "mvn eclipse: clean eclipse: eclipse" no genera los mismos archivos que Eclipse cuando se crea un nuevo proyecto (quiero decir dentro de ".settings"). Y, por lo tanto, (por ejemplo) el elemento "Dependencias del módulo Java EE" no aparece dentro de las propiedades del proyecto. ¿Hay alguna manera de editar el archivo "org.eclipse.wst.common.component" sin usar "mvn eclipse: clean" y sin hacerlo manualmente? Saludos

+4

Hola Lucas (y bienvenido a StackOverflow). Sugiero que publique esto como una nueva * pregunta *, StackOverflow es un sitio de preguntas y respuestas, y las respuestas se deben usar para las respuestas a la pregunta original. Gracias por adelantado. –

2

En config experto en Eclipse-plugin Añadir ...

<additionalConfig> 
    <file> 
    <name>.settings/org.eclipse.wst.common.component</name> 
    <content> 
     <![CDATA[Your file content here 
     ]]> 
    </content> 
    </file> 
</additionalConfig> 
0

Bueno, para regenerar el archivo JAR para (solamente), en el proyecto, haga clic derecho> Propiedades> Proyecto: Facetas - Verifique la opción de Java y elija la versión de Java. Generará el archivo org.eclipse.wst.common.project.facet.core en la carpeta .settings - Verifique el módulo de utilidad.Se generará el archivo org.eclipse.wst.common.component en los .settings carpeta - Haga clic en el botón y/o el botón OK

Aplicar Esto sólo es una manera de generar el archivo para su IDE ambiente. Desde nuestro entendimiento, una razón de por qué m2e-wtp no genera correctamente el archivo es un POM "malo". Parece que Project Facets se deducen del archivo pom.xml y sus relaciones entre otros proyectos/módulos (por ej .: Dependencias con un tipo de proyecto de módulo web/Java EE).

Cuestiones relacionadas