| = TomEE Maven Plugin |
| :index-group: TomEE Maven Plugin |
| :jbake-date: 2018-12-05 |
| :jbake-type: page |
| :jbake-status: published |
| |
| |
| == 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 link:maven/index.html[here] |
| |
| You will likely need the full Java EE API added to your pom file: |
| |
| [source,xml] |
| ---- |
| <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 link:maven/index.html[`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: |
| |
| [source,bash] |
| ---- |
| 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: |
| |
| [source,properties] |
| ---- |
| 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: |
| |
| [source,bash] |
| ---- |
| 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: |
| |
| [source,bash] |
| ---- |
| 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: |
| |
| [source,properties] |
| ---- |
| http://localhost:8080/index |
| ---- |