Resumen

En Eclipse, cuando me «Maven->Actualización de la Configuración del Proyecto» «Dependencias Maven» se elimina de la Implementación «Asamblea» de mi proyecto.

Detalles

Empecé con un pre-configurado proyecto de Eclipse: Archivo->Nuevo->Proyecto Web Dinámico->JavaServer Cara v2.0 Proyecto. Para quitar la «magia» luego convirtió a un proyecto de Maven: Configuración->Convertir a proyecto de Maven.

pom.xml contiene los siguientes:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webXml>WebContent/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

Luego, para asegurarse de que las dependencias Maven se copian a «WEB-INF/lib/» antes de la implementación,
He añadido a la del proyecto de Implementación «Asamblea»: Propiedades del Proyecto->el Despliegue de la Asamblea. Para más detalles, vea esta pregunta: Eclipse + Maven + JavaServer Faces -> ClassNotFoundException: StartupServletContextListener.

Sé que tengo dos problemas relacionados.

Problemas

(1) Cuando me «Proyecto->Maven->Proyecto de Actualización de la Configuración», «Dependencias Maven» se quita de mi «Despliegue de la Asamblea». Hay una manera de evitar que esto suceda, posiblemente a través de algún plugin de Maven?

(2) Cuando voy a construir en el .la guerra desde dentro de Eclipse todo está bien, el .la guerra se ejecuta bien en Tomcat. Pero cuando voy a construir desde la línea de comandos con Maven, mvn clean compile war:war, el .archivos html a partir de «WebContent/» no es un añadido a la .la guerra. De nuevo, Que Maven ajustes/plugins necesito para remediar esto?

FYI, es un sistema muy básico de la aplicación… sólo una página de inicio de sesión y una página de bienvenida.

Si hay cualquier información adicional que debo proporcionar (web.xml faces-config-xml, inicio de sesión.xhtml), hágamelo saber y voy a añadir.

Gracias

–EDIT–

Eclipse versión: 3.6.2

Eclipse m2e versión: 1.0.1

Apache Maven versión: 2.2.1

(1) Solución

Actualizado a Eclipse Java EE 3.7.2 (Índigo). Ahora también el uso de m2e-wtp Integración de Maven para Eclipse con el plugin WTP

(2) Solución

Creado un nuevo proyecto de Maven de arquetipo, entonces Eclipse->Importación->Existente Proyecto de Maven. Con la nueva versión de Eclipse y el m2e-wtp, la perspectiva Java EE en Eclipse funciona bien con el estándar de Maven estructura de directorios

La pom.xml ahora es más sencilla también:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>
  • La versión de Eclipse y M2Eclipse estás usando?
  • Eclipse versión: 3.6.2 Eclipse m2e versión: 1.0.1 Apache Maven versión: 2.2.1
  • He actualizado mi respuesta a la dirección de su pregunta sobre el directorio WebContent.
  • Soluciones añadido

1 Comentario

  1. 4

    Recomiendo para pasar a Eclipse 3.7.x (Índigo), que tiene un mejor soporte para m2e, y también permite el uso de la Integración de Maven para WTP (instalación independiente), lo que debería hacer las cosas mucho más fáciles. Supongo que la mayoría de sus problemas deben ser resueltos mediante la actualización a Índigo.

    Instalar Enlace: http://marketplace.eclipse.org/node/96737

    Ver también aquí: Maven/Tomcat Proyectos En Eclipse Indigo/3.7

    Editar
    Poner sus recursos en la web bajo WebContent y, a continuación, añadiendo que como un directorio en la GUERRA plugin puede ser una solución. La manera limpia sería tenerlos bajo src/main/resources o src/main/webapp y deberían ser incluidos automáticamente en el archivo WAR. WebContent no es uno de Maven estándar de directorios.

    • Gracias, trataré de salir y conseguir de nuevo a usted cuando he terminado (tomará un poco de tiempo para descargar & instalar todo, a continuación, iniciar nuevo proyecto). Una pregunta, con el «m2eclipse-wtp» plugin, ¿aún es necesario el uso de crear-helper-maven-plugin (plugin de Maven) & m2e-construir-helper-conector (Eclipse)?
    • Tengo que confesar que no estoy familiarizado con estos dos…
    • Instalada ahora. Con esta nueva configuración, ¿cuál es el método de creación de un proyecto recomiendas? línea de comando maven de arquetipo, o utilizando el asistente de Eclipse?
    • Yo siempre crear un pequeño básica POM, ya sea copiando de otro proyecto, o mediante el arquetipo de mago dentro de Eclipse.
    • con la nueva estructura sé ver esto… en la Implementación en la Web de la Asamblea veo 4 entradas. ((1)) /src/main/java -> WEB-INF/classes [ACEPTAR] ((2)) /src/main/webapp -> / [.html, web.xml, etc.?] ((3)) Dependencias Maven -> WEB-INF/lib [ACEPTAR] ((4)) /el destino/m2e-wtp/web-recursos -> / [¿qué es esto?]
    • cuando se trabaja en una PLANTA de proyecto con el m2e y m2e-wtp plugins, hacer las Caras Editor de configuración todavía abierto? La mía ya no, y he sido incapaz de averiguar por qué (stackoverflow.com/questions/9992977/…)
    • No he utilizado este editor hasta el momento, pero una prueba rápida muestra que yo pueda abrir un faces-config.xml archivo bien con ella.
    • ¿usted acaba de utilizar «Abrir Con…»->»Rostros Editor de configuración»?
    • Sí, incluso un simple doble clic funcionaba bien.
    • aceptar que fue un error absurdo. yo no agregar JavaServer Faces faceta de mi proyecto porque se rompió mi build, pero ahora veo que me tenía que quitar el Eclipse-agregado JSF biblioteca de mi build path… todo bien ahora
    • Que «src/main/webapp» sugerencia me ayudó a entender lo que yo estaba haciendo mal. Gracias.
    • Es un tema viejo, pero tengo exactamente el mismo pb con Eclipse Marte. Entonces, ¿qué hacer ? :p

Dejar respuesta

Please enter your comment!
Please enter your name here