2009-04-22 24 views
10

Estoy usando maven2 para la administración de dependencias. Tengo un proyecto que contiene algunos archivos Java y algunos archivos jsp y otro proyecto, un proyecto web, que depende del primer proyecto. ¿Cómo accedo a los archivos jsp del proyecto web?archivos maven, jsp en dependencia

Veo que los archivos jsp se agregan a 1-0-SNAPSHOT-sources.jar y no a 1-0-SNAPSHOT.jar (que se agrega como una dependencia en los proyectos web pom.xml).

+0

¿Cómo funciona exactamente el segundo proyecto "dependen" de las JSP? ¿Qué hace con ellos? Incluirlos? Parse ellos? ¿Algo más? – kazanaki

Respuesta

13

Creo que la forma correcta de hacerlo sería colocar los archivos JSP en su proyecto web en/src/main/webapp. Si eso por alguna razón no es posible, puede usar el Maven Dependency Plugin para copiar los archivos necesarios en su aplicación web. O bien, si tiene un proyecto WAR de todos modos, puede usar un Overlay para copiar los archivos JSP. La segunda opción (que recomiendo), sería algo como esto:

<build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
      <overlays> 
       <overlay> 
       <groupId>myGroupId</groupId> 
       <artifactId>myArtifactId</artifactId> 
       <type>jar</type> 
       <includes> 
        <include>**/*.jsp</include> 
       </includes> 
       <targetPath>WEB-INF/pages</targetPath> 
       </overlay> 
      </overlays> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
+0

gracias por la respuesta. La superposición WAR fue la solución correcta para el proyecto. – vpalle

+2

Me alegra ayudar. ¿Qué tal un upvote, entonces ...;) –

+0

+1 Muchas gracias por la solución :) – dira

0

El problema con esta solución es que cuando desarrollando con Eclipse, el proyecto no maneja la superposición. Entonces, los jsp no son accesibles.

0

Quería algunos archivos de un proyecto JAR de dependencia en mi proyecto WEB.

Lo he hecho de esta manera para poder tener los archivos no solo al empaquetar el WAR sino también al ejecutar el complemento maven servlet container (es decir, jetty: run o tomcat: run).

Así que aquí es lo que funcionó para mí:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.1</version> 
    <executions> 
     <execution> 
      <id>copy-files-to-webapp-directory</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>unpack</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>com.my.project</groupId> 
         <artifactId>my-amazing-project</artifactId> 
         <type>jar</type> 
         <overWrite>true</overWrite> 
         <outputDirectory>src/main/webapp</outputDirectory> 
         <includes>**/*.jsp, **/*.css, **/*.png</includes> 
        </artifactItem> 
       </artifactItems> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Esperanza que ayuda a cualquiera que busque una solución similar