Preloader image

Add The TomEE Maven Plugin To An Existing Project

If you already have a maven project set up then just add the plugin as described here

You will likely need the full Java EE API added to your pom file:

<dependency>
  <groupId>org.apache.openejb</groupId>
  <artifactId>javaee-api</artifactId>
  <version>6.0-6</version>
  <scope>provided</scope>
</dependency>

The simplest path is to allow Maven to create an example project for you. Even if you have an existing project you can always use the template as a reference.

Generate a Basic TomEE-Project With Maven

TomEE provides a maven-archetype for generating a template project. This template project is preconfigured with javaee-api (scope provided) and with the tomee-maven-plugin for starting the application with TomEE.

For example, if current version of the archetype is '1.7.1', then the required command to generate an application would be:

mvn archetype:generate -DarchetypeGroupId=org.apache.openejb.maven -DarchetypeArtifactId=tomee-webapp-archetype -DarchetypeVersion=1.7.1

The first time you run this command maven downloads the archetype and some parts related to it. Afterwards you see a prompt which allows you to specify the groupId, artifactId, version and package of your application. If you are using 'tomee' as groupId, 'tomee-demo' as artifactId, '1.0' as version and 'myapp' as package, your console should show something like:

Define value for property 'groupId': : tomee
Define value for property 'artifactId': : tomee-demo
Define value for property 'version':  1.0-SNAPSHOT: : 1.0
Define value for property 'package':  tomee: : myapp
Confirm properties configuration:
groupId: tomee
artifactId: tomee-demo
version: 1.0
package: myapp
...
[INFO] BUILD SUCCESS
...

Afterwards you see a new folder with the name you used for the artifactId (in the previous example 'tomee-demo'). For starting the application you have to change the current directory to the directory of the generated application:

cd tomee-demo

Starting a TomEE-Project with Maven

With using the archetype everything you need is in place already. So you just have to start TomEE with:

mvn package tomee:run

The first time you run this command takes a bit longer, because maven has to download e.g. TomEE. Once those parts are downloaded, starting maven, deploying and starting the generated application takes less than 10s (depending on your computer).

Accessing a running application

The application gets deployed to target/apache-tomee/webapps. If everything worked correctly, you should see a directory ('ROOT') as well as a web-archive ('ROOT.war'). The context-paths of the deployed application is ROOT. In our example the generated application contains a servlet mapped to '/index'. So you can access it via:

http://localhost:8080/index