groupId:artifactId:version
TomEE Maven Plugin - Goals & Configuration
TomEE Maven Plugin is a set of goals for the development and to prepare to go in production:
- 
tomee:build - 
tomee:exec - 
tomee:configtest - 
tomee:debug - 
tomee:deploy - 
tomee:exec - 
tomee:list - 
tomee:run - 
tomee:start - 
tomee:stop - 
tomee:undeploy 
Run
The most commonly used goal, it allows to start a tomee with applications. Here is its configuration:
| Name | Default | Description | 
|---|---|---|
synchronization  | 
-  | 
a synchronization (see after the table)  | 
synchronizations  | 
-  | 
list of synchronizations  | 
reloadOnUpdate  | 
-  | 
should the application be redeployed when a synchronization is triggered  | 
skipCurrentProject  | 
false  | 
should current project not be considered as a deployable even if its packaging is compatible (war typically)  | 
tomeeVersion  | 
auto, plugin one  | 
which version of TomEE to use  | 
tomeeGroupId  | 
org.apache.tomee  | 
TomEE artifact groupId  | 
tomeeArtifactId  | 
apache-tomee  | 
TomEE artifact artifactId  | 
tomeeType  | 
zip  | 
the type of the TomEE artifact , only zip supported at the moment  | 
tomeeClassifier  | 
webprofile  | 
which flavor of TomEE to use (classifier)  | 
tomeeShutdownPort  | 
read from server.xml  | 
the shutdown port  | 
tomeeShutdownAttempts  | 
60  | 
how many times to wait for startup/shutdown (waits 1s in between)  | 
tomeeShutdownCommand  | 
SHUTDOWN  | 
the shutdown command  | 
tomeeAjpPort  | 
read from the pom  | 
the AJP port if needed  | 
tomeeHttpsPort  | 
read from the pom  | 
the HTTPS port if needed  | 
args  | 
-  | 
command line arguments (system properties, javaagent, JVM options …)  | 
debug  | 
-  | 
start and wait for a remote debugger to connect  | 
debugPort  | 
5005  | 
used when debug to change the default port  | 
simpleLog  | 
false  | 
use one line logs  | 
extractWars  | 
false  | 
explode wars before starting  | 
stripWarVersion  | 
true  | 
remove the version from the war name  | 
stripVersion  | 
false  | 
remove the version from the artifact name whatever it is (even jar)  | 
webappResources  | 
${project.basedir}/src/main/webapp  | 
where web resources are  | 
webappClasses and classes  | 
${project.build.outputDirectory}  | 
where artifact binaries are  | 
catalinaBase  | 
${project.build.directory}/apache-tomee  | 
where to create the tomee instance  | 
context  | 
-  | 
name of the current artifact (rename the war from the maven name to this one)  | 
webappDir  | 
webapps  | 
path to webapps folder from tomee.base  | 
appDir  | 
apps  | 
path to apps folder from tomee.base  | 
libDir  | 
lib  | 
where is lib folder  | 
mainDir  | 
${project.basedir}/src/main  | 
used in openejb mode to change default config of conf/lib/bin folders to openejb instead of tomee  | 
config  | 
${project.basedir}/src/main/tomee/conf  | 
a conf folder synchronized with TomEE one  | 
bin  | 
${project.basedir}/src/main/tomee/bin  | 
a bin folder synchronized with TomEE one  | 
lib  | 
${project.basedir}/src/main/tomee/lib  | 
a lib folder synchronized with TomEE one  | 
systemVariables  | 
-  | 
a map of system properties  | 
classpaths  | 
-  | 
a list of additional entries for the startup classpath  | 
customizers  | 
-  | 
a list of customizers  | 
jsCustomizers  | 
-  | 
a list of js customizers (js scripts)  | 
groovyCustomizers  | 
-  | 
a list of groovy customizers (groovy scripts)  | 
webappDefaultConfig  | 
false  | 
auto config war oriented  | 
quickSession  | 
true  | 
session generation will use   | 
forceReloadable  | 
false  | 
ensure TomEE supports reloading/redeployment  | 
forceJspDevelopment  | 
true  | 
JSP will be auto-recompiled on changes  | 
libs  | 
-  | 
dependencies to add in lib, see after this table for advanced usage  | 
endorsedLibs  | 
-  | 
dependencies to add in endorsed, see after this table for advanced usage  | 
javaagents  | 
-  | 
javaagents to add on the JVM, supports maven coordinates  | 
persistJavaagents  | 
false  | 
should javaagent be saved or just use for this plugin run  | 
webapps  | 
-  | 
additional applicatinos to deploy  | 
warFile  | 
${project.build.directory}/${project.build.finalName}.${project.packaging}  | 
the war to deploy  | 
workWarFile  | 
${project.build.directory}/${project.build.finalName}"  | 
the exploded war to deploy  | 
removeDefaultWebapps  | 
true  | 
should default webapps (ROOT, docs, …) be deleted  | 
deployOpenEjbApplication  | 
false  | 
should openejb internal application be deployed  | 
removeTomeeWebapp  | 
true  | 
should tomee webapp (with EJBd adapter) be deployed  | 
tomeeAlreadyInstalled  | 
false  | 
skip all the setup configuration  | 
ejbRemote  | 
true  | 
should EJBd be activated  | 
checkStarted  | 
false  | 
should the plugin check the server is up (useful when used with   | 
checkStartedAttempts  | 
60  | 
only active, if   | 
useConsole  | 
true  | 
wait for the end of the execution reading inputs from the console (like   | 
useOpenEJB  | 
false  | 
use openejb-standalone instead of tomee  | 
inlinedServerXml  | 
-  | 
a server.xml content in pom.xml directly  | 
inlinedTomEEXml  | 
-  | 
a tomee.xml content in pom.xml directly  | 
overrideOnUnzip  | 
true  | 
if when unzipping tomee a file is already there should it be overriden  | 
skipRootFolderOnUnzip  | 
true  | 
ignore root folder of the zip  | 
keystore  | 
-  | 
path to keystore for HTTPS connector  | 
Synchronization are blocks defining a source and target folder and both are synchronized. It typically copy
src/main/webapp resources in target/apache-tomee/webapps/myapp/.
Customizers
Customizers are java classes loadable by the plugin and with a main or implementing Runnable and taking optionally
as constructor parameter a File representing tomee.base or no arguments.
They are executed when creating the TomEE instance.
There are two scripting flavors of that: js and groovy. Both will have some contextual variables:
- 
catalinaBase: tomee base path
 - 
resolver: a maven resolver to get a dependency using maven. For instance:
resolver.resolve('group', 'artfact', 'version', 'type') 
Dependencies (libs)
The format can be:
- 
a maven dependency:
 
- 
a zip dependency and extracted in lib folder:
 
unzip:groupId:artifactId:version
- 
a matching prefix to remove:
 
remove:prefix
Example
<plugin>
  <groupId>org.apache.tomee.maven</groupId>
  <artifactId>tomee-maven-plugin</artifactId>
  <version>${TOMEE_VERSION}</version>
  <configuration>
    <tomeeClassifier>plus</tomeeClassifier>
    <debug>false</debug>
    <debugPort>5005</debugPort>
    <args>-Dfoo=bar</args>
    <config>${project.basedir}/src/test/tomee/conf</config>
    <libs>
      <lib>mysql:mysql-connector-java:5.1.20</lib>
    </libs>
    <webapps>
       <webapp>org.superbiz:myapp:4.3?name=ROOT</webapp>
       <webapp>org.superbiz:api:1.1</webapp>
    </webapps>
    <apps>
        <app>org.superbiz:mybugapp:3.2:ear</app>
    </apps>
    <libs>
        <lib>mysql:mysql-connector-java:5.1.21</lib>
        <lib>unzip:org.superbiz:hibernate-bundle:4.1.0.Final:zip</lib>
        <lib>remove:openjpa-</lib>
    </libs>
  </configuration>
</plugin>
Build
Excepted synchronization, build plugin inherit from run Mojo its configuration. It just adds the following:
| Name | Default | Description | 
|---|---|---|
formats  | 
-  | 
map of configuration, keys are format (zip, tar.gz) and value the target location  | 
zip  | 
true  | 
create a zip from the configured instance  | 
attach  | 
true  | 
attach created artifacts  | 
skipArchiveRootFolder  | 
false  | 
don’t add a root folder in the zip  | 
Tomcat like goals
configtest, start and stop just execute these commands on the server (like on catalina.sh).