blob: f316de8bba1dbd24f5584e83569af776c33c4b60 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TomEE Maven Plugin</title>
<meta name="description" content="Apache TomEE">
<meta name="author" content="Apache TomEE">
<meta name="google-translate-customization" content="f36a520c08f4c9-0a04e86a9c075ce9-g265f3196f697cf8f-10">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate, max-age=0">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="./resources/css/bootstrap.css" rel="stylesheet">
<link href="./resources/css/prettify.css" rel="stylesheet">
<!--link href="./resources/css/bootstrap-mods.css" rel="stylesheet"-->
<link href="./resources/css/main.css" rel="stylesheet">
<link href="./resources/font-awesome-4.6.3/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
var t = encodeURIComponent(document.title.replace(/^\s+|\s+$/g,""));
var u = encodeURIComponent(""+document.URL);
function fbshare () {
window.open(
"http://www.facebook.com/sharer/sharer.php?u="+u,
'Share on Facebook',
'width=640,height=426');
};
function gpshare () {
window.open(
"https://plus.google.com/share?url="+u,
'Share on Google+',
'width=584,height=385');
};
function twshare () {
window.open(
"https://twitter.com/intent/tweet?url="+u+"&text="+t,
'Share on Twitter',
'width=800,height=526');
};
function pinshare () {
window.open("//www.pinterest.com/pin/create/button/?url="+u+"&media=http%3A%2F%2Ftomee.apache.org%2Fresources%2Fimages%2Ffeather-logo.png&description="+t,
'Share on Pinterest',
'width=800,height=526');
};
</script>
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="./favicon.ico">
<link rel="apple-touch-icon" href="./resources/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="./resources/images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="./resources/images/apple-touch-icon-114x114.png">
<script src="./resources/js/prettify.js" type="text/javascript"></script>
<script src="./resources/js/jquery-latest.js"></script>
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
<script src="./resources/js/common.js"></script>
<script src="./resources/js/prettyprint.js"></script>
<!--script src="//assets.pinterest.com/js/pinit.js" type="text/javascript" async></script//-->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2717626-1']);
_gaq.push(['_setDomainName', 'apache.org']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div class="topbar" data-dropdown="dropdown">
<div class="fill">
<div class="container">
<a class="brand" href="./index.html">Apache TomEE</a>
<ul class="nav">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Apache
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<!-- <li><a href="./misc/whoweare.html">Who we are?</a></li> -->
<!-- <li><a href="./misc/heritage.html">Heritage</a></li> -->
<li><a href="http://www.apache.org">Apache Home</a></li>
<!-- <li><a href="./misc/resources.html">Resources</a></li> -->
<li><a href="./misc/contact.html">Contact</a></li>
<li><a href="./misc/legal.html">Legal</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li class="divider"/>
<li><a href="http://www.apache.org/security">Security</a></li>
</ul>
</li>
<li><a href="./index.html">Home</a></li>
<li><a href="./downloads.html">Downloads</a></li>
<li><a href="./documentation.html">Documentation</a></li>
<li><a href="./examples-trunk/index.html">Examples</a></li>
<li><a href="./support.html">Support</a></li>
<li><a href="./contribute.html">Contribute</a></li>
<li><a href="./security/index.html">Security</a></li>
</ul>
<!-- Google CSE Search Box Begins -->
<FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
<INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
<INPUT type="hidden" name="cof" value="FORID:0">
<INPUT size="18" width="130" style="width:130px" name="q" type="text" placeholder="Search">
</FORM>
<!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
<!-- Google CSE Search Box Ends -->
</div>
</div>
</div>
<div class="container">
<div class="page-header">
<small><a href="./index.html">Home</a></small><br>
<h1>TomEE Maven Plugin
<div style="float: right; position: relative; bottom: -10px; ">
<a onclick="javascript:gpshare()" class="gp-share sprite" title="Share on Google+">share [gp]</a>
<a onclick="javascript:fbshare()" class="fb-share sprite" title="Share on Facebook">share [fb]</a>
<a onclick="javascript:twshare()" class="tw-share sprite" title="Share on Twitter">share [tw]</a>
<a onclick="javascript:pinshare()" class="pin-share sprite" title="Share on Pinterest">share [pin]</a>
<a data-toggle="modal" href="#edit" class="edit-page" title="Contribute to this Page">contribute</a>
</div>
</h1>
</div>
<p>Inspired by the Jetty Maven Plugin, the TomEE Maven Plugin is a feature-rich
plugin that allows for:</p>
<ul>
<li>Easy provisioning of a TomEE server</li>
<li>Server start and stop</li>
<li>Application deployment and undeployment</li>
</ul>
<p>Simply add the following to the <plugins>, and optionally the <pluginManagement>), section of your <code>pom.xml</code></p>
<pre><code>&lt;plugins&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.apache.openejb.maven&lt;/groupId&gt;
&lt;artifactId&gt;tomee-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;1.7.1&lt;/version&gt;
&lt;configuration&gt;
&lt;tomeeVersion&gt;1.7.1&lt;/tomeeVersion&gt;
&lt;tomeeClassifier&gt;plus&lt;/tomeeClassifier&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
&lt;/plugins&gt;
</code></pre>
<h3>Plugin Goals</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Goal</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="maven/build-mojo.html">tomee:build</a></td>
<td>Create TomEE, but do not run it.</td></tr>
<tr class="a">
<td><a href="maven/configtest-mojo.html">tomee:configtest</a></td>
<td>Run the Apache Tomcat `configtest` command.</td></tr>
<tr class="b">
<td><a href="maven/debug-mojo.html">tomee:debug</a></td>
<td>Same as `run` but with debug activated on the default or specified port.</td></tr>
<tr class="a">
<td><a href="maven/deploy-mojo.html">tomee:deploy</a></td>
<td>Deploy an application in a running TomEE.</td></tr>
<tr class="b">
<td><a href="maven/exec-mojo.html">tomee:exec</a></td>
<td>Creates an executable jar of the application.</td></tr>
<tr class="a">
<td><a href="maven/help-mojo.html">tomee:help</a></td>
<td>Display help information on the tomee-maven-plugin.<br />
Call <code>mvn tomee:help -Ddetail=true
-Dgoal=&lt;goal-name&gt;</code> to display parameter details.</td></tr>
<tr class="b">
<td><a href="maven/list-mojo.html">tomee:list</a></td>
<td>Largely inspired by the OpenEJB command helper, but with some differences. List deployed EJB's in a running TomEE.</td></tr>
<tr class="a">
<td><a href="maven/run-mojo.html">tomee:run</a></td>
<td>Start and wait for TomEE.</td></tr>
<tr class="b">
<td><a href="maven/start-mojo.html">tomee:start</a></td>
<td>Start TomEE and continue.</td></tr>
<tr class="a">
<td><a href="maven/stop-mojo.html">tomee:stop</a></td>
<td>Stop a TomEE started with start command.</td></tr>
<tr class="b">
<td><a href="maven/undeploy-mojo.html">tomee:undeploy</a></td>
<td>Undeploy an application in a running TomEE</td></tr></table>
<p>Note that for the tomee:deploy and tomee:undeploy goals, the path can either be specified within the <configuration/> section of the <code>pom.xml</code> using the <path> 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.</p>
<p>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.</p>
<h3>More Tweaks</h3>
<p>The lib tag allows to enrich the container with some additional libraries.</p>
<p>Some interesting patterns in addition to the default maven formats are supported.</p>
<ul>
<li>remove:&lt;some prefix of jar in lib folder&gt;: remove all jar starting with the specified prefix</li>
<li>unzip:&lt;some maven zip&gt;: extract the zip in lib folder</li>
<li>?name=&lt;new-name&gt;: rename the libary once copied in lib folder</li>
</ul>
<p>Note: the name tweak can be used to rename applications too</p>
<h3>Provisioning Example</h3>
<p>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.</p>
<pre><code> &lt;plugin&gt;
&lt;groupId&gt;org.apache.openejb.maven&lt;/groupId&gt;
&lt;artifactId&gt;tomee-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;1.7.1&lt;/version&gt;
&lt;configuration&gt;
&lt;tomeeVersion&gt;1.7.1&lt;/tomeeVersion&gt;
&lt;tomeeClassifier&gt;plus&lt;/tomeeClassifier&gt;
&lt;debug&gt;false&lt;/debug&gt;
&lt;debugPort&gt;5005&lt;/debugPort&gt;
&lt;args&gt;-Dfoo=bar&lt;/args&gt;
&lt;config&gt;${project.basedir}/src/test/tomee/conf&lt;/config&gt;
&lt;libs&gt;
&lt;lib&gt;mysql:mysql-connector-java:5.1.20&lt;/lib&gt;
&lt;/libs&gt;
&lt;webapps&gt;
&lt;webapp&gt;org.superbiz:myapp:4.3?name=ROOT&lt;/webapp&gt;
&lt;webapp&gt;org.superbiz:api:1.1&lt;/webapp&gt;
&lt;/webapps&gt;
&lt;apps&gt;
&lt;app&gt;org.superbiz:mybugapp:3.2:ear&lt;/app&gt;
&lt;/apps&gt;
&lt;libs&gt;
&lt;lib&gt;mysql:mysql-connector-java:5.1.21&lt;/lib&gt;
&lt;lib&gt;unzip:org.superbiz:hibernate-bundle:4.1.0.Final:zip&lt;/lib&gt;
&lt;lib&gt;remove:openjpa-&lt;/lib&gt;
&lt;/libs&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</code></pre>
<h3>Auto Reloading Example</h3>
<pre><code>&lt;plugin&gt;
&lt;groupId&gt;org.apache.openejb.maven&lt;/groupId&gt;
&lt;artifactId&gt;tomee-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;1.7.1&lt;/version&gt;
&lt;configuration&gt;
&lt;synchronization&gt;
&lt;extensions&gt;
&lt;extension&gt;.class&lt;/extension&gt; &lt;!-- if you want to update each time you build with mvn compile --&gt;
&lt;/extensions&gt;
&lt;/synchronization&gt;
&lt;reloadOnUpdate&gt;true&lt;/reloadOnUpdate&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</code></pre>
<p>The Synchronization block supports the following configuration options:</p>
<ul>
<li>resourcesDir (default src/main/webapp)</li>
<li>binariesDir (default target/classes)</li>
<li>targetBinariesDir (default tomee/webapps/finalName/WEB-INF/classes)</li>
<li>targetResourcesDir (default tomee/webapps/finalName)</li>
<li>updateInterval (default 5 - in second)</li>
<li>extensions (default html, xhtml, js and css)</li>
<li>regex: a regex should match files to take into account when updating</li>
</ul>
<p>reloadOnUpdate means to reload the entire context (webapp). This means undeploying/redeploying the application.</p>
<div id="edit" class="modal hide fade in" style="display: none; ">
<div class="modal-header">
<a class="close" data-dismiss="modal">x</a>
<h3>Thank you for contributing to the documentation!</h3>
</div>
<div class="modal-body">
<h4>Any help with the documentation is greatly appreciated.</h4>
<p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
<small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
<!--[if gt IE 6]>
<h4>Internet Explorer Users</h4>
<p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
<![endif]-->
</div>
<div class="modal-footer">
Do you have an Apache ID?
<a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
<a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
</div>
</div>
<script src="./resources/js/bootstrap-modal.js"></script>
<footer>
<p>Copyright &copy; 1999-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
</footer>
</div> <!-- /container -->
<!-- Javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="./resources/js/bootstrap-dropdown.js"></script>
</body>
</html>