You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by pl...@apache.org on 2003/01/26 07:53:13 UTC
cvs commit: jakarta-turbine-maven/src/plugins-build/appserver/xdocs appserver.xml changes.xml dirlayout.xml futures.xml goals.xml index.xml navigation.xml properties.xml
plynch 2003/01/25 22:53:13
Added: src/plugins-build/appserver/xdocs appserver.xml changes.xml
dirlayout.xml futures.xml goals.xml index.xml
navigation.xml properties.xml
Log:
o adding appserver documentation -- needs a good once over before the next release of the plugin as it probably contains a bunch of falsehoods
Revision Changes Path
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/appserver.xml
Index: appserver.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="plynch@apache.org">Peter Lynch</author>
<title>Maven J2EE Plug-in: Appserver Notes</title>
</properties>
<body>
<section name="Maven J2EE Appserver Control">
<p>
This page offers some general information about the appserver control
features of the J2EE plug-in. Specific details about
<a href="./goals.html#maven:appserver-install">related targets</a> and
their <a href="./properties.html#Application Server" >properties</a> can be found elsewhere.
</p>
</section>
<section name="Plug-in Rationale">
<p>
When developing a web application (or website for that matter), each developer
working on the project needs to have an environment to run and test their
application. Rather than store a complete application server install in source
control, it is much more feasible to have a centralized install of that
application server. Then, using only the minimum configuration files the
developer can control a separate isolated instance of the application server
on their machine.
</p>
<p>
The Maven J2EE plug-in appserver features use this technique to install and control
application server instances for your project needs. The appserver
features <strong>are not</strong> for
deploying webapps or war files into application servers.
</p>
</section>
<section name="Supported Servers">
<p>
The following table shows the various appserver versions that are
supported by the appserver control features of the Maven J2EE plug-in
and what propety values are required to be set in order for the
maven:appserver-* targets to work with those versions.
</p>
<table>
<tr>
<th>Server</th>
<th>${maven.appserver.name}</th>
<th>${maven.appserver.version}</th>
<th>${maven.j2ee.version}</th>
</tr>
<tr>
<td><a href="http://jakarta.apache.org/tomcat">Tomcat 4.x</a></td>
<td><code>tomcat</code></td>
<td><code>40</code></td>
<td><code>12</code> or <code>13</code></td>
</tr>
</table>
<p>The following application servers are expected to be supported soon:</p>
<ul>
<li><a href="http://enhydra.enhydra.org/">Enhydra</a></li>
<li><a href="http://www.orionserver.com/">Orion</a></li>
<li><a href="http://www.caucho.com/products/resin/">Resin</a></li>
<li><a href="http://www.weblogic.com/">Weblogic</a></li>
</ul>
</section>
<section name="Appserver Proxy Build File">
<p>
To make life even easier when using the appserver targets, the Maven J2EE
plug-in includes a proxy build file. This means a file similar to the one
below is copied to the directory specified by
<a href="./properties.html#maven.appserver.dir">${maven.appserver.dir}</a>.
</p>
<table><tr><th>${maven.appserver.dir}/build.xml</th></tr></table>
<source><![CDATA[
<?xml version="1.0"?>
<project name="Maven Application Server Plugin Proxy" default="install"
basedir="@basedir@">
<!-- ================================================================== -->
<!-- Proxy for controlling an installed application server instance -->
<!-- ================================================================== -->
<!-- ========================================================== -->
<!-- Give user a chance to override without editing this file -->
<!-- (and without typing -D each time they compile) -->
<!-- ========================================================== -->
<!-- all ant projects specific properties -->
<property file="${user.home}/build.properties" />
<!-- project/user specific settings -->
<property file="@basedir@/build.properties" />
<!-- anything here is expected to be project defaults -->
<property file="@basedir@/project.properties" />
<!-- ========================================================== -->
<target name="install">
<ant antfile="${maven.home}/plugins/j2ee/build.xml"
target="appserver-install" />
</target>
<target name="start">
<ant antfile="${maven.home}/plugins/j2ee/build.xml"
target="appserver-start" />
</target>
<target name="stop">
<ant antfile="${maven.home}/plugins/j2ee/build.xml"
target="appserver-stop" />
</target>
</project>]]>
</source>
<p>Using this build file, you can run the appserver related targets quickly
from within your ${maven.appserver.dir} directory. Typing simply</p>
<source><![CDATA[ant]]></source>
<p>can stop, re-install, and re-start a started server instance.</p>
</section>
</body>
</document>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/changes.xml
Index: changes.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>Changes</title>
<author email="dion@multitask.com.au">dIon Gillard</author>
</properties>
<body>
<release version="1.1" date="in CVS">
<action dev="dion" type="fix">
Updated docs so that they referred to the current release and not
b5
</action>
<action dev="dion" type="fix">
Fix for jars not being included in an EAR file
</action>
<action dev="dion" type="add">
Added the new <a href="changes-report.html">changes report</a>.
</action>
</release>
</body>
</document>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/dirlayout.xml
Index: dirlayout.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="dion@multitask.com.au">dIon Gillard</author>
<title>Maven J2EE Plug-in Directory Layout</title>
</properties>
<body>
<section name="Rationale">
<p>
Having a common directory layout would allow for users familiar
with one Maven project to immediately feel at home in another
Maven project. The advantages are analogous to adopting a
site-wide look-and-feel. Common Maven procedures strengthen the
Maven brand.
</p>
<p>
The next two sections document the directory layout expected by
Maven and the directory layout created by Maven. Please try to
conform to this structure as much as possible; however, if you
must these settings can be overridden via properties as
documented in the <a
href="http://jakarta.apache.org/turbine/maven/start/integrate.html#Properties">Integration</a> document.
</p>
</section>
<section name="Common Directory Layout">
<table>
<tr>
<th>Directory or file name</th>
<th>Content</th>
<th>Comment</th>
</tr>
<tr>
<td>src/webapp</td>
<td>The base directory under which web applications can be found.</td>
<td>
This directory contains the web application to
be built. The web application name is passed to maven as the
property ${maven.j2ee.war.name}
</td>
</tr>
</table>
</section>
<section name="Maven-Generated Layout">
<table>
<tr>
<th>Directory name</th>
<th>Content</th>
<th>Comment</th>
</tr>
<tr>
<td>target/</td>
<td>Contains compiled WARs and EARs.</td>
<td>
This directory is used by the J2EE Plug-in as the destination of the
built war and ear files
</td>
</tr>
</table>
</section>
</body>
</document>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/futures.xml
Index: futures.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="dion@multitask.com.au">dIon Gillard</author>
<author email="plynch@apache.org">Peter Lynch</author>
<title>Futures for the J2EE Plug-in</title>
</properties>
<body>
<section name="Futures">
<p>
The following is a list of things that are being contemplated
for the Maven J2EE Plug-in.
</p>
<ol>
<li>
We need to have Class-Path entries in generated J2EE EJB jars and
such. Quite tricky as it doesn't work the same for all application
servers (and across versions of them !).
</li>
<li>
Add HTML validation.
</li>
<li>
Add EAR validation.
</li>
<li>
Add validation of Tag libraries to the validate-war goal.
</li>
<li>
Add technology specific validators, e.g. JSP/Turbine/Velocity/Struts
etc
</li>
<li>
Allow integration with a 'webserver' plugin so that application server
requests can seamlessly be hooked into the application server.
</li>
<li>
Tie where applicable the appserver instance to other Maven plugins that
need an application server instance to do their work.
</li>
</ol>
</section>
</body>
</document>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/goals.xml
Index: goals.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="dion@multitask.com.au">dIon Gillard</author>
<author email="kevin@rocketred.com.au">Kevin O'Neill</author>
<author email="plynch@apache.org">Peter Lynch</author>
<title>Maven J2EE Plug-in Goals</title>
</properties>
<body>
<section name="Overview">
<p>
This document describes the supplied
<a href="http://jakarta.apache.org/commons/sandbox/jelly/tags.html#jelly:werkz">goals</a>
that are available when using the J2EE Plug-in with Maven.
</p>
<p>
Please refer to the
<a href="../../start/integrate.html">Integration</a> document for
more information on how to integrate these goals into
your project.
</p>
<p>
The build file utilizes various properties for default and
user-configurable settings. All J2EE Plug-in properties are described
in the <a href="./properties.html">Properties</a> document.
The rest of this document assumes your project follows the standard
<a href="dirlayout.html">Directory Layout</a>; however, it is
possible to override many of these defaults.
</p>
</section>
<section name="J2EE Goals">
<table>
<tr><th>Goal</th><th>Description</th></tr>
<tr>
<td><a href="#j2ee:validate-war">j2ee:validate-war</a></td>
<td>Validate a <code>WAR</code> file.</td>
</tr>
<tr>
<td><a href="#j2ee:ejb">j2ee:ejb</a></td>
<td>Creates an <code>EJB</code>jar file.</td>
</tr>
<tr>
<td><a href="#j2ee:ear">j2ee:ear</a></td>
<td>Creates an <code>EAR</code> file.</td>
</tr>
<tr>
<td><a href="#j2ee:appserver-install">j2ee:appserver-install</a></td>
<td>Installs an Application Server instance</td>
</tr>
<tr>
<td><a href="#j2ee:appserver-start">j2ee:appserver-start</a></td>
<td>Starts an Application Server instance</td>
</tr>
<tr>
<td><a href="#j2ee:appserver-stop">j2ee:appserver-stop</a></td>
<td>Stops an Application Server instance</td>
</tr>
<tr>
<td><a href="#j2ee:appserver-clean">j2ee:appserver-clean</a></td>
<td>Safely deletes the Application Server instance installation directory
specified by the <code><a href="./properties.html">${maven.appserver.dir}</a></code>
property.</td>
</tr>
</table>
<p/>
<subsection name="j2ee:validate-war">
<p>
The <code>j2ee:validate-war</code> target validates the newly
produced war file.
</p>
<p>
The validator checks the folowing:
<ol>
<li>The war file exists</li>
<li>It is readable</li>
<li>The war file has a web.xml (it's only a warning if it
doesn't exist)</li>
<li>Servlets defined by a <code><servlet></code> tag are loadable
from the war file and <strong>not</strong> the classpath</li>
<li>JSPs defined by a <code><servlet></code> tag exist in the war
</li>
<li>Taglibs defined by a <code><taglib></code> have a <code>
<taglib-location></code> that exists in the war</li>
<li>Error pages specified by a <code><location></code> nested
within an <code><error-page></code> element must exist in the
war file</li>
<li>Login and error pages specified in the <code><form-login-config
></code> element must exist in the war file</li>
</ol>
</p>
</subsection>
<subsection name="j2ee:ejb">
<p>
The <code>j2ee:ejb</code> target generates the <code>ejb</code> jar file
for the project. Optionally it can also create jars containing the local
and remote interfaces. The files are produced in the
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a>/ejb</code>
directory and have a name based on the
<code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a></code>
property.
</p>
<p>The files generated are:
<ul>
<li><code>${maven.j2ee.ejb.name}.jar</code></li>
<li><code>${maven.j2ee.ejb.name}-remote.jar</code> <emp>(optional)</emp></li>
<li><code>${maven.j2ee.ejb.name}-local.jar</code> <emp>(optional)</emp></li>
</ul>
</p>
<p>
Maven also includes the license file, LICENSE.txt, if it exists, in
the META-INF directory.
</p>
<p>
The contents of the ejb file include:
</p>
<table>
<tr><th>Item</th><th>Description</th></tr>
<tr>
<td>ejb-jar.xml</td>
<td>
A J2EE enterprise bean deployment descriptor, which
is placed in the root of the resulting ear file.
The <code><a href="properties.html#maven.j2ee.ejb.conf.dir">
${maven.j2ee.ejb.conf.dir}</a></code> and associated includes and
excludes properties defines the location of this file.
</td>
</tr>
<tr>
<td>Classes</td>
<td>
The files in the <code><a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a></code>
directory to be included is specified using the
<code><a href="properties.html#maven.j2ee.ejb.includes">${maven.j2ee.ejb.includes}</a></code>
and <code><a href="properties.html#maven.j2ee.ejb.excludes">${maven.j2ee.ejb.excludes}</a></code>
properties.
</td>
</tr>
<tr>
<td>Meta-Inf</td>
<td>
Files to be included the <code>META-INF</code> directory of the ejb
jar file may be specified using the
<code><a href="properties.html#maven.j2ee.ejb.conf.dir">
${maven.j2ee.ejb.conf.dir}</a></code>,
<code><a href="properties.html#maven.j2ee.ejb.conf.includes">
${maven.j2ee.ejb.conf.includes}</a></code> and
<code><a href="properties.html#maven.j2ee.ejb.conf.excludes">
${maven.j2ee.ejb.conf.excludes}</a></code> properties.
</td>
</tr>
</table>
</subsection>
<subsection name="j2ee:ear">
<p>
The <code>j2ee:ear</code> target generates an ear file for the
project. The ear file is produced in the
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a></code>
directory and has a name defined by the
<code><a href="properties.html#maven.j2ee.ear.name">${maven.j2ee.ear.name}</a></code>
property.
</p>
<p>
Maven also includes the license file, LICENSE.txt, if it exists, under
the directory META-INF.
</p>
<p>
The contents of the ear file include:
</p>
<table>
<tr><th>Item</th><th>Description</th></tr>
<tr>
<td>application.xml</td>
<td>
A J2EE enterprise application deployment descriptor, which
is placed in the META-INF of the resulting ear file.
The <code><a href="properties.html#maven.j2ee.ear.appxml">${maven.j2ee.ear.appxml}</a></code>
property defines the location of this file. It defaults to
<code>src/application.xml</code>
</td>
</tr>
<tr>
<td>Other Content</td>
<td>
Any dependencies specified in your <code>project.xml</code>
may be included by adding the ear.bundle.jar property to the
properties, e.g.
<source><![CDATA[
<dependency>
<id>CustomerEjb</id>
<version>2.4</version>
<properties>
<ear.bundle.jar>true</ear.bundle.jar>
</properties>
</dependency>
]]></source>
</td>
</tr>
</table>
</subsection>
<!-- j2ee:appserver-* targets ======================================= -->
<subsection name="j2ee:appserver-install">
<p>
The <code>j2ee:appserver-install</code> target installs the minimum
directory and file structure necessary for an individual application
server instance. Once the structure is created inside the
directory specified by <a href="properties.html#maven.appserver.dir">${maven.appserver.dir}</a>
, configuration files are installed using the copy task and the filter
mechanism built into <a href="http://jakarta.apache.org/ant">Ant</a>.
The exact work done by this target is specific to the
name and version of the application server you specify using
<a href="properties.html#maven.appserver.name">${maven.appserver.name}</a>
and <a href="properties.html#maven.appserver.version">${maven.appserver.version}</a>
properties.
</p>
<p>
Optionally, you can invoke the <code>install</code> target of the
Ant build.xml file copied to ${maven.appserver.dir} instead. See the
<a href="appserver.html#Appserver Proxy Build File">appserver proxy build file</a> for more
information.
</p>
<p>
During the configuration process, all
<a href="./properties.html#Application Server">maven.appserver.* properties</a>
are used as filter tokens while files in
${maven.conf.dir}/${maven.appserver.name}${maven.appserver.version} are
copied to ${maven.appserver.dir}. By default, certain files are
excluded from copying to ${maven.appserver.dir}. Files excluded are:
</p>
<ul>
<li>**/web.xml/**</li>
</ul>
<p>
This allows you to keep you webapp specific conf files in the same
directory and not have them installed with this target needlessly.
</p>
<p>
Your configuration files may require additional processing ( using additional
filter tokens for example). In that case you can use the
<a href="properties.html#maven.appserver.post-appserver-install.buildFile">maven-post-appserver-install</a>
callback target to re-configure files.
</p>
<p>
This target has different behavior
depending on the current status of the application server. The
behavior is defined by the following rules:
</p>
<table>
<tr><th>Server Status</th><th>Behavior</th></tr>
<tr>
<td>Not Installed</td>
<td>
Install and configure the application server.
</td>
</tr>
<tr>
<td>Installed and stopped</td>
<td>
Re-install/re-configure the application server.
</td>
</tr>
<tr>
<td>Installed and started</td>
<td>
Stop, re-install/re-configure, re-start the application server.
</td>
</tr>
</table>
<p><strong>Note:</strong> In all situations, the <code>j2ee:appserver-install</code>
target will overwrite existing appserver configuration files already
installed. Maven does this because it cannot know if the you have changed
your <a href="properties.html#Application Server">maven.appserver.* related properties</a>,
so it always re-configures the configuration files. Since this
operation has low overhead, it is considered a feature that allows dynamic
updates to your appserver related property values.</p>
</subsection>
<subsection name="j2ee:appserver-start">
<p>
The <code>j2ee:appserver-start</code> target
attempts to start the application server instance you have specified
via properties.
</p>
<p>Optionally, you can invoke the <code>start</code> target of the
Ant build.xml file copied to ${maven.appserver.dir} instead. See the
<a href="appserver.html#Appserver Proxy Build File">appserver proxy build file</a> for more
information.
</p>
<p>
This target will cause two processes to run. One process will
represent the running of the Ant build file for the Maven target.
The other will be the forked JVM that actually starts the application
server instance.
</p>
<p>
If you don't want the processes to block your current terminal,
you can execute the call to this target in the background using the
traditional '&' directive on unix-like systems.
</p>
<p> For example, to run the server in the background, go to your
${maven.appserver.dir} directory and type:</p>
<source><![CDATA[ant start &]]></source>
<p>
This target has different behavior
depending on the current status of the application server. The
behavior is defined by the following rules:
</p>
<table>
<tr><th>Server Status</th><th>Behavior</th></tr>
<tr>
<td>Not Installed</td>
<td>
Install/configure, then start the application server.
</td>
</tr>
<tr>
<td>Installed and stopped</td>
<td>
Start the application server.
</td>
</tr>
<tr>
<td>Installed and started</td>
<td>
Stop and then re-start the application server. This is useful for
application servers that are not set to auto-reload resources.
</td>
</tr>
</table>
</subsection>
<subsection name="j2ee:appserver-stop">
<p>
The <code>j2ee:appserver-stop</code> target
attempts to stop the application server instance you have specified
via the <a href="properties.html">maven.appserver.* properties</a>.
</p>
<p>Optionally, you can invoke the <code>stop</code> target of the
Ant build.xml file copied to ${maven.appserver.dir} instead. See the
<a href="appserver.html#Appserver Proxy Build File">appserver proxy build file</a> for more
information.
</p>
<p>
This target only has relevance if the application server instance
is actually started. All other situations do nothing.
</p>
</subsection>
<subsection name="j2ee:appserver-clean">
<p>
The <code>j2ee:appserver-clean</code> target
attempts to safely delete the directory specified by
${maven.appserver.dir}.
</p>
<p>
This target has different behavior
depending on the current status of the application server. The
behavior is defined by the following rules:
</p>
<table>
<tr><th>Server Status</th><th>Behavior</th></tr>
<tr>
<td>Installed and stopped</td>
<td>
Deletes the directory specified by ${maven.appserver.dir}.
</td>
</tr>
<tr>
<td>Installed and started</td>
<td>
Stop the application server instance and then delete the directory
specified by ${maven.appserver.dir}.
</td>
</tr>
</table>
</subsection>
</section>
</body>
</document>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/index.xml
Index: index.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>Maen J2EE Plug-in</title>
<author email="dion@multitask.com.au">dIon Gillard</author>
<author email="plynch@apache.org">Peter Lynch</author>
</properties>
<body>
<section name="Maven J2EE Plug-in">
<p>
This document provides an overview of the reference section
for the Maven J2EE Plug-in.
The documents presented here are references, if you are looking
for more verbose usage material, please refer to the <a
href="../../start/index.html">Getting Started</a> section.
</p>
<subsection name="Overview of the J2EE Plug-in Reference Documentation">
<table>
<tr><th>Document</th><th>Description</th></tr>
<tr><td><a href="goals.html">Goals</a></td>
<td>
This document provides detailed information on the various
goals that are available as part of the Maven J2EE Plug-in.
</td>
</tr>
<tr><td><a href="properties.html">Properties</a></td>
<td>
The behavior of the Maven J2EE Plug-in can be altered via numerous
properties. This document describes each property
available as the default used.
</td>
</tr>
<tr><td><a href="dirlayout.html">Directory Layout</a></td>
<td>
The preferred directory layout structure is documented
here. This is a useful document if you are trying to
determine what a particular component of your directory
hierarchy is used for.
</td>
</tr>
<tr><td><a href="appserver.html">Appserver Notes</a></td>
<td>
<p>
This page contains additional reference material regarding the application server (
appserver ) control features of the Maven J2EE plugin.
</p>
<p>
For additional help in understanding what the appserver features of the
Maven J2EE plugin are, look at the
<a href="properties.html#Application Server">J2EE plug-in properties</a>
and <a href="./goals.html#maven:appserver-install">J2EE build file</a>
documents.
</p>
</td>
</tr>
<tr><td><a href="futures.html">Futures</a></td>
<td>
These are the current thoughts on additional items
that could or should be added to the plug-in.
They may or may not make it to an actual task list of a
developer.
</td>
</tr>
</table>
</subsection>
</section>
</body>
</document>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/navigation.xml
Index: navigation.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Maven">
<title>Maven</title>
<body>
<links>
<item name="Maven" href="http://jakarta.apache.org/turbine/maven/"/>
</links>
<menu name="Overview">
<item name="Goals" href="/goals.html"/>
<item name="Properties" href="/properties.html"/>
<item name="Directory Layout" href="/dirlayout.html"/>
<item name="Appserver Notes" href="/appserver.html"/>
<item name="Futures" href="/futures.html"/>
</menu>
</body>
</project>
1.1 jakarta-turbine-maven/src/plugins-build/appserver/xdocs/properties.xml
Index: properties.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="dion@multitask.com.au">dIon Gillard</author>
<author email="kevino@jacus.com.au">Kevin O'Neill</author>
<author email="plynch@apache.org">Peter Lynch</author>
<title>Maven J2EE Plug-in Properties Documentation</title>
</properties>
<body>
<section name="Maven J2EE Plug-in Properties">
<p>
The following is an overview of the various properties (and
default values) used by the Maven J2EE Plug-in <a
href="goals.html">goals</a>. These properties
control various aspects of the J2EE build. Most of these
properties are optional and have defaults; however, there are
mandatory properties that must be set as described in this document.
</p>
<p>
These properties can be overridden to change the default behavior of
the Maven J2EE Plug-in. If you need to override any of these properties,
please refer to the
<a href="http://jakarta.apache.org/turbine/maven/start/integrate.html">Integration</a>
document for the preferred method of setting properties in your project.
</p>
<table>
<tr><th>Section</th><th>Description</th></tr>
<tr>
<td><a href="#General Settings">General Settings</a></td>
<td>
These properties specify various settings that may be used in any
J2EE Plug-in target.
</td>
</tr>
<tr>
<td><a href="#War Settings">War</a></td>
<td>
These properties specify various settings that control the build
of a war file by the J2EE Plug-in.
</td>
</tr>
<tr>
<td><a href="#EJB Settings">EJB</a></td>
<td>
These properties specify various settings that control the build
of a ejb jar by the J2EE Plug-in.
</td>
</tr>
<tr>
<td><a href="#Ear Settings">Ear</a></td>
<td>
These properties specify various settings that control the build
of an ear file by the J2EE Plug-in.
</td>
</tr>
<tr>
<td><a href="#Application Server">Appserver</a></td>
<td>
These properties detail what application server instance you would
like to install and control for your project and how to configure
it.
</td>
</tr>
</table>
</section>
<section name="General Settings" >
<table>
<tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
<tr>
<td><a name="maven.j2ee.version">maven.j2ee.version</a></td>
<td>
No for the "appserver:install" goal.
Otherwise, Yes.
</td>
<td>
Specifies the version of J2EE you are trying to use. Valid values are:
<ul>
<li>12</li>
<li>13</li>
</ul>
The above values represent version 1.2 and 1.3 respectively.
The value of this property is especially important for the
<a href="appserver.html#Supported Servers">supported servers</a>
used with the appserver control features of this plugin.
</td>
</tr>
</table>
</section>
<section name="War Settings">
<table>
<tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
<tr>
<td><a name="maven.j2ee.war.name">maven.j2ee.war.name</a></td>
<td>No</td>
<td>
Specifies the name of the web application to be built.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.src">maven.j2ee.war.src</a></td>
<td>Yes</td>
<td>
Specifies the directory in the local file system that is
used as the base directory for finding web applications. It defaults
to <code><a href="../properties.html#Directory Layout Settings">${maven.src.dir}</a>/webapps</code>
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.content">maven.j2ee.war.content</a></td>
<td>Yes</td>
<td>
Specifies the directory in the local file system that holds
web content to be placed in the war file. It defaults
to ${maven.j2ee.war.src}/${maven.j2ee.war.name}
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.classes.includes">maven.j2ee.war.classes.includes</a></td>
<td>Yes</td>
<td>
Specifies the pattern of files in the directory specified by
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a></code>
to be included in the <code>/WEB-INF/classes</code> of the resulting
war file. It defaults to <code>**</code>, that is, all files.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.classes.excludes">maven.j2ee.war.classes.excludes</a></td>
<td>Yes</td>
<td>
Specifies the pattern of files in the directory specified by
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a></code>
that are <strong>not</strong> to be included in the
<code>/WEB-INF/classes</code> of the resulting war file.
It defaults to <code>**/package.html</code>.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.lib.includes">maven.j2ee.war.lib.includes</a></td>
<td>Yes</td>
<td>
<p>WARNING: This property is temporarily unused.</p>
Specifies the pattern of files in the
<a href="../project-descriptor.html#dependencies">project dependencies</a>
to be included in the <code>/WEB-INF/lib</code> of the resulting
war file. It defaults to <code>*.jar</code>, that is, all dependencies.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.lib.excludes">maven.j2ee.war.lib.excludes</a></td>
<td>Yes</td>
<td>
<p>WARNING: This property is temporarily unused.</p>
Specifies the pattern of files in the
<a href="http://jakarta.apache.org/turbine/maven/reference/project-descriptor.html#dependencies">project dependencies</a>
not to be included in the <code>/WEB-INF/lib</code> of the resulting
war file. It defaults to blank, that is, no dependencies are excluded.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.war.webxml">maven.j2ee.war.webxml</a></td>
<td>Yes</td>
<td>
Specifies the deployment descriptor to be used when building the war
file. It will be placed in <code>/WEB-INF/web.xml</code> of the resulting
war file. It defaults to <code><a href="../properties.html#Directory Layout Settings">${maven.conf.dir}</a>/${maven.j2ee.war.name}-web.xml</code>
</td>
</tr>
</table>
</section>
<section name="EJB Settings">
<table>
<tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
<tr>
<td><a name="maven.j2ee.ejb.name">maven.j2ee.ejb.name</a></td>
<td>No</td>
<td>
Specifies the name of the ejb jar to be built.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.conf.dir">maven.j2ee.ejb.conf.dir</a></td>
<td>No</td>
<td>
Specifies the directory to be used to find the deployment descriptor
and other files to be placed in <code>META-INF</code> directory of
the resulting ejb jar. It defaults to
<code><a href="../properties.html#Directory Layout Settings">${maven.conf.dir}</a>/<a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a></code>
</td>
</tr>
<tr>
<td>
<a name="maven.j2ee.ejb.conf.includes">maven.j2ee.ejb.conf.includes
</a>
</td>
<td>Yes</td>
<td>
Specifies the a pattern of files to be included in the
<code>META-INF</code> directory of the resulting ejb jar, relative
to the <code>${maven.j2ee.ejb.conf.dir}</code>. It defaults to
<code>ejb-jar.xml</code>.
</td>
</tr>
<tr>
<td>
<a name="maven.j2ee.ejb.conf.excludes">maven.j2ee.ejb.conf.excludes
</a>
</td>
<td>Yes</td>
<td>
Specifies the a pattern of files to be excluded from the
<code>META-INF</code> directory of the resulting ejb jar, relative
to the <code>${maven.j2ee.ejb.conf.dir}</code>. It defaults to
blank.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.includes">maven.j2ee.ejb.includes</a></td>
<td>Yes</td>
<td>
Specifies the pattern of files in the
<a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a>
directory to be included in the generated ejb jar. Defaults to <code>**/*</code>.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.excludes">maven.j2ee.ejb.excludes</a></td>
<td>Yes</td>
<td>
Specifies the pattern of compiled class files to be <strong>excluded</strong>
from the generated ejb jar. Defaults to <code>**/package.html</code>.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.local.includes">maven.j2ee.ejb.local.includes</a></td>
<td>Yes</td>
<td>
If this property exists then a jar file with the name
<code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-local.jar</code>
containing the matching files will be generated in
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a>/ejb</code>.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.local.excludes">maven.j2ee.ejb.local.excludes</a></td>
<td>Yes</td>
<td>
Files to be <strong>excluded</strong> from the
<code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-local.jar</code>
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.remote.includes">maven.j2ee.ejb.remote.includes</a></td>
<td>Yes</td>
<td>
If this property exists then a jar file with the name
<code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-remote.jar</code>
containing the matching files will be generated in
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a>/ejb</code>.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ejb.remote.excludes">maven.j2ee.ejb.remote.excludes</a></td>
<td>Yes</td>
<td>
Files to be <strong>excluded</strong> from the
<code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-remote.jar</code>
</td>
</tr>
</table>
</section>
<section name="Ear Settings">
<table>
<tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
<tr>
<td><a name="maven.j2ee.ear.name">maven.j2ee.ear.name</a></td>
<td>No</td>
<td>
Specifies the name of the enterprise application to be built.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ear.includes">maven.j2ee.ear.includes</a></td>
<td>Yes</td>
<td>
Specifies the pattern of files in the
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a></code>
directory to be included in the resulting ear file. It defaults to
<code>*.jar, *.war</code>, that is, all jar and war files.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ear.excludes">maven.j2ee.ear.excludes</a></td>
<td>Yes</td>
<td>
Specifies the pattern of files in the
<code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a></code>
directory that are not to be included in the resulting ear file.
It defaults to blank, that is, nothing is excluded.
</td>
</tr>
<tr>
<td><a name="maven.j2ee.ear.appxml">maven.j2ee.ear.appxml</a></td>
<td>Yes</td>
<td>
Specifies the deployment descriptor to be used when building the ear
file. It will be placed in <code>/application.xml</code> of the resulting
ear file. It defaults to <code><a href="../properties.html#Directory Layout Settings">${maven.conf.dir}</a>/${maven.j2ee.ear.name}-application.xml</code>
</td>
</tr>
</table>
</section>
<section name="Application Server">
<p> Although application server ( appserver ) instance control is part
of the J2EE plugin, all appserver related properties begin with
the "maven.appserver" prefix. This is indicative of the large scope of
functionality within the appserver targets.
</p>
<table>
<tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
<tr>
<td><a name="maven.appserver.name">maven.appserver.name</a></td>
<td>No</td>
<td>
Specifies the name of the application server to install and control
for your project.
<p />
Please refer to the <a href="appserver.html#Supported Servers">supported servers</a>
table for a current list of supported appservers and the ${maven.appserver.name}
value they use use.
</td>
</tr>
<tr>
<td><a name="maven.appserver.version">maven.appserver.version</a></td>
<td>No</td>
<td>
Specifies the version of the appserver to install and control
for your project. Please refer to the
<a href="appserver.html#Supported Servers">supported servers</a>
table for a current list of supported appservers and the
${maven.appserver.version} value they use.
</td>
</tr>
<tr>
<td><a name="maven.appserver.home">maven.appserver.home</a></td>
<td>No</td>
<td>
Specifies the directory where the shared installation of the appserver
resides. This should be the home of the appserver specified by
<a href="#maven.appserver.name">${maven.appserver.name}</a>
and <a href="#maven.appserver.version">${maven.appserver.version}</a>.
</td>
</tr>
<tr>
<td><a name="maven.appserver.dir">maven.appserver.dir</a></td>
<td>No</td>
<td>
Specifies the directory where the appserver instance is installed
during the "appserver:install" goal.
Defaults to be ${basedir}/server .
</td>
</tr>
<tr>
<td><a name="maven.appserver.host">maven.appserver.host</a></td>
<td>No</td>
<td>
Specifies the default host to use to access the started server
instance. Defaults to 'localhost'.
</td>
</tr>
<tr>
<td><a name="maven.appserver.port.http">maven.appserver.port.http</a></td>
<td>No</td>
<td>
Specifies the HTTP port number to use to access the started server
instance. Defaults to 8080.
</td>
</tr>
<tr>
<td><a name="maven.appserver.url">maven.appserver.url</a></td>
<td>No</td>
<td>
The URL that is used to test if your appserver instance is running.
This URL must point to a target that will return a response code < 400
when your appserver instance is started. Default value is
http://${maven.appserver.host}:${maven.appserver.port.http}/index.html
</td>
</tr>
<tr>
<td><a name="maven.appserver.port.https">maven.appserver.port.https</a></td>
<td>Yes</td>
<td>
Specifies the HTTPS port number to use to access the started server
instance using SSL. Defaults to 444.
</td>
</tr>
<tr>
<td><a name="maven.appserver.port.one">maven.appserver.port.one</a></td>
<td>Yes</td>
<td>
Optional additional port you can specify when configuring appserver files during
install.
</td>
</tr>
<tr>
<td><a name="maven.appserver.port.two">maven.appserver.port.two</a></td>
<td>Yes</td>
<td>
Optional additional port you can specify when configuring appserver files during
install.
</td>
</tr>
<tr>
<td><a name="maven.appserver.port.three">maven.appserver.port.three</a></td>
<td>Yes</td>
<td>
Optional additional port you can specify when configuring appserver files during
install.
</td>
</tr>
<tr>
<td><a name="maven.appserver.classpath">maven.appserver.classpath</a></td>
<td>Yes</td>
<td>
A <a href="http://jakarta.apache.org/ant/manual/using.html#path">path-like</a>
value that can specify resources to make available as
part of the classpath of the JVM used when controlling your appserver instance.
For example, you may have several webapps running in the same container
that require a JDBC driver be available. Adding a reference to that
jar here will put it in the classpath of the JVM used to start
your appserver.
<p/>
An example of a valid value might be:
<p/>
<code>/jars/database.jar;/jars/foobar.jar</code>
<p/>
Path seperators are automatically converted to their system correct values.
By default, there are no additional paths. <strong>Jars required to control an appserver
are automatically built-in and do not need to be added here.</strong>
</td>
</tr>
</table>
</section>
</body>
</document>