Inspired by the Jetty Maven Plugin, the TomEE Maven Plugin is a feature-rich plugin that allows for:
Simply add the following to the pom.xml
<plugins>
<plugin>
<groupId>org.apache.openejb.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>1.7.1</version>
<configuration>
<tomeeVersion>1.7.1</tomeeVersion>
<tomeeClassifier>plus</tomeeClassifier>
</configuration>
</plugin>
</plugins>
Goal | Description |
---|---|
tomee:build | Create TomEE, but do not run it. |
tomee:configtest | Run the Apache Tomcat `configtest` command. |
tomee:debug | Same as `run` but with debug activated on the default or specified port. |
tomee:deploy | Deploy an application in a running TomEE. |
tomee:exec | Creates an executable jar of the application. |
tomee:help | Display help information on the tomee-maven-plugin. Call mvn tomee:help -Ddetail=true
-Dgoal=<goal-name> to display parameter details. |
tomee:list | Largely inspired by the OpenEJB command helper, but with some differences. List deployed EJB's in a running TomEE. |
tomee:run | Start and wait for TomEE. |
tomee:start | Start TomEE and continue. |
tomee:stop | Stop a TomEE started with start command. |
tomee:undeploy | Undeploy an application in a running TomEE |
Note that for the tomee:deploy and tomee:undeploy goals, the path can either be specified within the pom.xml
using the
Note 2: running tomee maven plugin you can type 'quit' directly in the console to shutdown correctly the server. 'reload' is also available when internal openejb application is deployed.
The lib tag allows to enrich the container with some additional libraries.
Some interesting patterns in addition to the default maven formats are supported.
Note: the name tweak can be used to rename applications too
This plugin is also usable in projects which are not war. For instance you can use it in a pom project to setup a TomEE install, add libraries, deploy apps then run the server.
<plugin>
<groupId>org.apache.openejb.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>1.7.1</version>
<configuration>
<tomeeVersion>1.7.1</tomeeVersion>
<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>
<plugin>
<groupId>org.apache.openejb.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>1.7.1</version>
<configuration>
<synchronization>
<extensions>
<extension>.class</extension> <!-- if you want to update each time you build with mvn compile -->
</extensions>
</synchronization>
<reloadOnUpdate>true</reloadOnUpdate>
</configuration>
</plugin>
The Synchronization block supports the following configuration options:
reloadOnUpdate means to reload the entire context (webapp). This means undeploying/redeploying the application.