Estamos utilizando Maven 3 y estoy enfrentando un proyecto que tiene archivos JSP y también utiliza archivos JSP "globales" almacenados en un proyecto diferente. Esto funciona bien cuando se usan maven-war-plugin y webResources
. Todos los archivos JSP encuentran su camino en el archivo WAR.Maven: JspC debe usar archivos JSP externos
La nueva idea es precompilar todas las JSP. La opción obvia es usar jspc-maven-plugin. Sin embargo, eso no incluye las JSP externas cuando compila las JSP locales del proyecto.
He aquí el fragmento de la pom.xml
:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jspc-maven-plugin</artifactId>
<executions>
<execution>
<id>jspc</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warName>${pom.groupId}.${pom.artifactId}-0.0.1-SNAPSHOT</warName>
<webXml>${basedir}/target/jspweb.xml</webXml>
<webResources>
<resource>
<directory>../name.of.external.project/src/global/webapp</directory>
</resource>
</webResources>
</configuration>
</plugin>
El error es
[ERROR] Failed to execute goal org.codehaus.mojo:jspc-maven-plugin:1.4.6:compile (jspc) on project internal.project: JSPC Error: file:C:/workspace/name.of.internal.project/src/main/webapp/WEB-INF/views/show.jsp(2,0) File "/WEB-INF/views/../jspGlobal/jsp-declaration.jspf" not found -> [Help 1]
El -directory jspGlobal
conseguiría copiado con el <directory>../name.of.external.project/src/global/webapp</directory>
-line anteriormente.
¿Qué falta para incluir los JSP externos en JspC?
EDITAR: Gracias a prunge's y Raghuram's input me parecía más profundamente en las fuentes y JavaDocs. Noté que el mencionado sources
requiere un FileSet
que NO permite una lista de directorios. Y dado que sources
tampoco es una lista, no veo ninguna posibilidad de cómo puedo especificar más de un directorio fuente JSP. Incluso traté de copiar el elemento <plugin>
, pero eso no ayudó. Mi situación actual es la siguiente:
<plugin>
<groupId>org.codehaus.mojo.jspc</groupId>
<artifactId>jspc-maven-plugin</artifactId>
<version>2.0-alpha-3</version>
<executions>
<execution>
<id>jspc</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<sources>
<directory>${basedir}/../name.of.external.project/src/global/webapp</directory>
</sources>
<!-- the later mentioned <sources> gets picked
<sources>
<directory>${basedir}/src/main/webapp</directory>
</sources>
-->
<!-- 1.6 doesn't work!? Something lower than 1.5 seems to be the default -->
<source>1.5</source>
<target>1.5</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo.jspc</groupId>
<artifactId>jspc-compiler-tomcat6</artifactId>
<version>2.0-alpha-3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warName>${pom.groupId}.${pom.artifactId}-0.0.1-SNAPSHOT</warName>
<webXml>${basedir}/target/jspweb.xml</webXml>
<webResources>
<resource>
<directory>../name.of.external.project/src/global/webapp</directory>
</resource>
</webResources>
</configuration>
</plugin>
Ahora las páginas JSP externos se compilan en el blanco de la ruta del proyecto actual. Ahora necesito una forma de compilar las JSP del proyecto actual. ¿Cómo hago esto?
BTW, si cambio el <sources>
a la línea para el proyecto actual, obtengo el mismo error que el mencionado anteriormente.
Ok, lo intenté. Si quisiste decir que agregar la dependencia de 'jspc-compiler-tomcat6' es todo lo que necesita, causa el mismo resultado. – sjngm
@sjngm ¿Por qué agregar dependencia? ¿Intentó agregarlo como un complemento? – Dharmaputhiran
@Dharmaputhiran Lo siento, no puedo decirlo. Esto fue hace mucho tiempo. – sjngm