Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Jetty/Feature/Jetty Jspc Maven Plugin"

< Jetty‎ | Feature
(Configurable Parameters)
(Precompiling Jsps with Overlayed Wars)
Line 76: Line 76:
 
</pre>
 
</pre>
  
=== Precompiling Jsps with Overlayed Wars ===
+
=== Precompiling Jsps with Overlaid Wars ===
 +
 
 +
Precompiling jsps with an overlaid war requires a bit more configuration. This is because you need to separate the steps of unpacking the overlaid war and then repacking the final target war so the jetty-jspc-maven-plugin has the opportunity to access the overlaid web.xml and merge it with the web fragment.
 +
 
 +
Here's an example configuration of the war plugin to separate those phases:
 +
 
 +
<pre>
 +
      <plugin>
 +
        <artifactId>maven-war-plugin</artifactId>
 +
        <executions>
 +
          <execution>
 +
            <id>unpack</id>
 +
            <goals><goal>exploded</goal></goals>
 +
            <phase>generate-resources</phase>
 +
            <configuration>
 +
              <webappDirectory>target/foo</webappDirectory>
 +
              <overlays>
 +
                <overlay />
 +
                <overlay>
 +
                  <groupId>org.eclipse.jetty</groupId>
 +
                  <artifactId>test-jetty-webapp</artifactId>
 +
                </overlay>
 +
              </overlays>
 +
            </configuration>
 +
          </execution>
 +
          <execution>
 +
            <id>pack</id>
 +
            <goals><goal>war</goal></goals>
 +
            <phase>package</phase>
 +
            <configuration>
 +
              <warSourceDirectory>target/foo</warSourceDirectory>
 +
              <webXml>target/web.xml</webXml>
 +
            </configuration>
 +
          </execution>
 +
        </executions>
 +
      </plugin>
 +
 
 +
</pre>

Revision as of 07:09, 23 September 2009

Jetty Jspc Maven Plugin

This plugin will help you pre-compile your jsps and works in conjunction with the maven war plugin to put them inside an assembled war.


Configuration

Here's the basic setup required to put the jspc plugin into your build:

<plugin>
  <groupId>org.mortbay.jetty</groupId>
   <artifactId>jetty-jspc-maven-plugin</artifactId>
   <version>7.0.0</version>
   <executions>
     <execution>
       <id>jspc</id>
       <goals>
         <goal>jspc</goal>
       </goals>
       <configuration>
       </configuration>
     </execution>
   </executions>
 </plugin>

Configurable Parameters

The configurable parameters are

Parameter Name Default Value Meaning
webXmlFragment "${basedir}/target/webfrag.xml" File into which to generate the servlet declarations. Will be merged with an existing web.xml.
packageRoot "jsp" Default root package name for all generated classes.
webAppSourceDirectory "${basedir}/src/main/webapp" Root of resources directory where jsps, tags etc are located.
webXml "${basedir}/src/main/webapp/WEB-INF/web.xml" The web.xml file to use to merge with the generated fragments.
includes "**\/*.jsp, **\/*.jspx" The comma separated list of patterns for file extensions to be processed.
excludes "**\/.svn\/**" The comma separated list of patterns for file extensions to be skipped.
classesDirectory "${project.build.outputDirectory}" Location of classes for the webapp.
generatedClasses "${project.build.outputDirectory}" Location to put the generated classes for the jsps.
keepSources false Controls whether or not .java files generated during compilation will be preserved.
validateXml false x
suppressSmap true Whether or not to generate JSR45 compliant debug info.
ignoreJspFragmentErrors false x
schemaResourcePrefix x
insertionMarker x
verbose false x
mergeFragment true x

Taking all the default settings, here's how to configure the war plugin to use the generated web.xml that includes all of the jsp servlet declarations:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <configuration>
    <webXml>${basedir}/target/web.xml</webXml>
  </configuration>
</plugin>

Precompiling Jsps with Overlaid Wars

Precompiling jsps with an overlaid war requires a bit more configuration. This is because you need to separate the steps of unpacking the overlaid war and then repacking the final target war so the jetty-jspc-maven-plugin has the opportunity to access the overlaid web.xml and merge it with the web fragment.

Here's an example configuration of the war plugin to separate those phases:

      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <executions>
          <execution>
            <id>unpack</id>
            <goals><goal>exploded</goal></goals>
            <phase>generate-resources</phase>
            <configuration>
              <webappDirectory>target/foo</webappDirectory>
              <overlays>
                <overlay />
                <overlay>
                  <groupId>org.eclipse.jetty</groupId>
                  <artifactId>test-jetty-webapp</artifactId>
                </overlay>
              </overlays>
            </configuration>
          </execution>
          <execution>
            <id>pack</id>
            <goals><goal>war</goal></goals>
            <phase>package</phase>
            <configuration>
              <warSourceDirectory>target/foo</warSourceDirectory>
              <webXml>target/web.xml</webXml>
            </configuration>
          </execution>
        </executions>
      </plugin>

Back to the top