| = TomEE Maven Plugin |
| :index-group: Unrevised |
| :jbake-date: 2018-12-05 |
| :jbake-type: page |
| :jbake-status: published |
| |
| |
| Inspired by the Jetty Maven Plugin, the TomEE Maven Plugin is a |
| feature-rich plugin that allows for: |
| |
| * Easy provisioning of a TomEE server |
| * Server start and stop |
| * Application deployment and undeployment |
| |
| Simply add the following to the , and optionally the ), section of your |
| `pom.xml` |
| |
| [source,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> |
| ---- |
| |
| == Plugin Goals |
| |
| 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 section of the `pom.xml` using the |
| parameter, or it can be passed via the user property |
| tomee-plugin.archive. If a relative path is passed for the deploy path |
| archive, this must be relative to the TomEE server. |
| |
| 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. |
| |
| ###More Tweaks |
| |
| The lib tag allows to enrich the container with some additional |
| libraries. |
| |
| Some interesting patterns in addition to the default maven formats are |
| supported. |
| |
| * remove:<some prefix of jar in lib folder>: remove all jar starting |
| with the specified prefix |
| * unzip:<some maven zip>: extract the zip in lib folder |
| * ?name=<new-name>: rename the libary once copied in lib folder |
| |
| Note: the name tweak can be used to rename applications too |
| |
| ###Provisioning Example |
| |
| 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. |
| |
| [source,xml] |
| ---- |
| <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> |
| ---- |
| |
| ###Auto Reloading Example |
| |
| [source,xml] |
| ---- |
| <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: |
| |
| * resourcesDir (default src/main/webapp) |
| * binariesDir (default target/classes) |
| * targetBinariesDir (default tomee/webapps/finalName/WEB-INF/classes) |
| * targetResourcesDir (default tomee/webapps/finalName) |
| * updateInterval (default 5 - in second) |
| * extensions (default html, xhtml, js and css) |
| * regex: a regex should match files to take into account when updating |
| |
| reloadOnUpdate means to reload the entire context (webapp). This means |
| undeploying/redeploying the application. |