Skip to content
Skip to breadcrumbs
Skip to header menu
Skip to action menu
Skip to quick search
Quick Search
Browse
Pages
Blog
Labels
Attachments
Mail
Advanced
What’s New
Space Directory
Feed Builder
Keyboard Shortcuts
Confluence Gadgets
Log In
Dashboard
Maven User
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
More colours
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
tinymce.confluence.insert_menu.macro_desc
Info
JIRA Issue
Status
Gallery
Tasklist
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<p>Introduction to the Build Lifecycle</p> <h1>Table Of Contents</h1> <ul> <li>Build Lifecycle Basics</li> </ul> <ul> <li>Setting up your Project to Use the Build Lifecycle <ul> <li>Packaging</li> <li>Plugins</li> </ul> </li> </ul> <ul> <li>Build Lifecycle Phase Reference</li> </ul> <ul> <li>How the Build Lifecycle Affects Plugin Developers <ul> <li>Binding a Mojo to a Phase</li> <li>Specifying a New Packaging</li> <li>Creating a Custom Artifact Handler</li> <li>Forking a Parallel Lifecycle</li> </ul> </li> </ul> <ul> <li>Lifecycle Reference</li> </ul> <h1>Build Lifecycle Basics</h1> <p>Maven 2.0 is based around the central concept of a build lifecycle. What this means is that the process for building<br /> and distributing a particular artifact (project) is clearly defined.</p> <p>For the person building a project, this means that it is only necessary to learn a small set of commands to build any<br /> Maven project, and the POM will ensure they get the results they desired.</p> <p>There are three built-in Build Lifecycles: default, clean, and site. The default lifecycle handles your project<br /> deployment, the clean lifecycle handles project cleaning, while the site lifecycle handles the creation of your<br /> project's site documentation.</p> <h2>A Build Lifecycle is Made Up of Phases</h2> <p>Each of these build lifecycles are defined by a different list of build phases, wherein a build phase represents a<br /> stage in the lifecycle.</p> <p>For example, the default lifecycle has the following build phases (for a complete list of the build phases, refer<br /> to the Lifecycle Reference):</p> <ul> <li><code>validate</code> - validate the project is correct and all necessary information is available</li> </ul> <ul> <li><code>compile</code> - compile the source code of the project</li> </ul> <ul> <li><code>test</code> - test the compiled source code using a suitable unit testing framework. These tests should not<br /> require the code be packaged or deployed</li> </ul> <ul> <li><code>package</code> - take the compiled code and package it in its distributable format, such as a JAR.</li> </ul> <ul> <li><code>integration-test</code> - process and deploy the package if necessary into an environment where integration tests<br /> can be run</li> </ul> <ul> <li><code>verify</code> - run any checks to verify the package is valid and meets quality criteria</li> </ul> <ul> <li><code>install</code> - install the package into the local repository, for use as a dependency in other projects locally</li> </ul> <ul> <li><code>deploy</code> - done in an integration or release environment, copies the final package to the remote repository<br /> for sharing with other developers and projects.</li> </ul> <p>These build phases (plus the other build phases not shown here) and executed sequentially to complete the default<br /> lifecycle. Given the build phases above, this means that when the default lifecycle is used, Maven will first validate<br /> the project, then will try to compile the sources, run those against the tests, packages the binaries (i.e jar), run<br /> integration tests against that package, verifies the packaging, install the verifed package to the local repository,<br /> then depoy the installed package in a specified environment.</p> <p>To do all those, you only need to call the last build phase to be executed, in this case, deploy.<br /> <table class="wysiwyg-macro" data-macro-name="panel" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e3BhbmVsfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"> <p>mvn deploy</p></td></tr></table><br class="atl-forced-newline" /></p> <p>That is because if you call a build phase, it will execute not only that build phase, but also every build phase<br /> prior to the called build phase. Thus, doing<br /> <table class="wysiwyg-macro" data-macro-name="panel" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e3BhbmVsfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"> <p>mvn integration-test</p></td></tr></table><br class="atl-forced-newline" /></p> <p>Will do every build phase before it (validate, compile, package), before executing integration-test.</p> <p>There are more commands that are part of the lifecycle, which will be discussed in the following sections.</p> <p>It should also be noted that the same command can be used in a multi-module scenario (i.e. a project with one or more<br /> subprojects). For example;<br /> <table class="wysiwyg-macro" data-macro-name="panel" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e3BhbmVsfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"> <p>mvn clean install</p></td></tr></table><br class="atl-forced-newline" /></p> <p>This command will traverse into all of the subprojects and run <code>clean</code>, then <code>install</code> (including all of<br /> the prior steps).</p> <h2>A Build Phase is Made Up of Goals</h2> <p>However, even though a build phase is responsible for a specific step in the build lifecycle, the manner in which it<br /> carries out those responsibilities may vary. And this is done by declaring the goals bound to those build phases.</p> <p>A goal represents a specific task (finer than a build phase) which contributes to the building and managing of a<br /> project. It may bound itself to zero or more build phases. And a goal not bound to any build phase executes outside of<br /> the build lifecycle. The order of execution depends on the order in which the goal(s) and the build phase(s) are<br /> invoked. For exmaple, the in command below. The <code>clean</code> and <code>package</code> arguments are build phases. While the<br /> <code>dependency:copy-dependencies</code> is a goal.<br /> <table class="wysiwyg-macro" data-macro-name="panel" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e3BhbmVsfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"> <p>mvn clean dependency:copy-dependencies package</p></td></tr></table><br class="atl-forced-newline" /></p> <p>If this were to be executed, the <code>clean</code> phase will first be executed (meaning it will run all preceeding phases,<br /> plus the <code>clean</code> phase itself), and then the <code>dependency:copy-dependencies</code> goal, before finally executing the<br /> <code>package</code> phase (and all its preceeding build phases).</p> <p>Moreover, if a goal is bound to one or more build phases, that goal will be called in all those phases.</p> <p>Furthermore, a build phase can also have zero or more goals bound to it. If a build phase has no goals bound to it,<br /> that build phase will not execute. But if it has one or more goals bound to it, it will execute all those goals<br /> (_Note: as of maven-2.0.5, multiple goals bound to a phase are executed in the same order as they are declared in the<br /> POM_).</p> <h1>Setting up your Project to Use the Build Lifecycle</h1> <p>The build lifecycle is simple enough to use, but when you are constructing a Maven build for a project, how do you go<br /> about assigning tasks to each of those build phases?</p> <h2>Packaging</h2> <p>The first, and most common way, is to set the <code>packaging</code> for your project. Some of the valid <code>packaging</code><br /> values are <code>jar</code>, <code>war</code>, <code>ear</code>, and <code>pom</code>. If no packaging value have been specified, it will default<br /> to <code>jar</code>.</p> <p>Each packaging contains a list of goals to bind to a particular phase. For example, a JAR will bind the following build<br /> phases to the default lifecycle.</p> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>process-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:resources</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>compile</code> </p></td> <td class="confluenceTd"><p> <code>compiler:compile</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-test-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:testResources</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test-compile</code> </p></td> <td class="confluenceTd"><p> <code>compiler:testCompile</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test</code> </p></td> <td class="confluenceTd"><p> <code>surefire:test</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>package</code> </p></td> <td class="confluenceTd"><p> <code>jar:jar</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>install</code> </p></td> <td class="confluenceTd"><p> <code>install:install</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>deploy</code> </p></td> <td class="confluenceTd"><p> <code>deploy:deploy</code> </p></td> </tr> </tbody></table> <p>This is an almost standard set of bindings; however, some packages handle them differently. For example, a project<br /> that is purely metadata (packaging value is <code>pom</code>) only binds the <code>install</code> and <code>deploy</code> phases (for a<br /> complete list of build-phase-to-goal binding of some of the {{packaging}}s, refer to the<br /> Lifecycle Reference).</p> <p>Note that for some packaging types to be available, you may also need to include a particular plugin in your<br /> <code>build</code> section of your POM (as described in the next section). One example of a plugin that requires this is the<br /> Plexus plugin, which provides a <code>plexus-application</code> and <code>plexus-service</code> packaging.</p> <h2>Plugins</h2> <p>The second way to add goals to phases is to configure plugins in your project. Plugins are artifacts that provides<br /> goals to Maven. Furthermore, a plugin may have one or more goals wherein each goal represents a capability of that<br /> plugin. For example, the <code>maven-compiler-plugin</code> has two goals: <code>compile</code> and <code>testCompile</code>. The former<br /> compiles the source code of your main code, while the latter compiles the source code of your test codes.</p> <p>As you will see in the later sections, plugins contain information that indicate which lifecycle phase to bind each<br /> goal to. Note that adding the plugin on its own is not enough information - you must also specify the goals you want<br /> run as part of your build.</p> <p>The goals that are configured will be added to the goals already bound to the lifecycle from the packaging selected.<br /> If more than one goal is bound to a particular phase, the order used is that those from the packaging are executed<br /> first, followed by those configured in the POM. Note that you can use the <code>executions</code> element to gain more<br /> control over the order of particular goals.</p> <p>For example, the Modello plugin always binds <code>modello:java</code> to the <code>generate-sources</code> phase (Note: the<br /> <code>modello:java</code> goal generates java source codes). So to use the Modello plugin and have it generate sources from<br /> a model and incorporate that into the build, you would add the following to your POM in the <code>plugins</code> section of<br /> <code>build</code>:</p> <table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="title=pom.xml" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6dGl0bGU9cG9tLnhtbH0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> ... <plugin> <groupId>org.codehaus.modello</groupId> <artifactId>modello-maven-plugin</artifactId> <executions> <execution> <configuration> <model>maven.mdo</model> <modelVersion>4.0.0</modelVersion> </configuration> <goals> <goal>java</goal> </goals> </execution> </executions> </plugin> ... </pre></td></tr></table> <p><br class="atl-forced-newline" /></p> <p>You might be wondering why that executions element is there. That is so that you can run the same goal multiple times<br /> with different configuration if needed. Separate executions can also be given an ID so that during inheritence or the<br /> application of profiles you can control whether goal configuration is merged or turned into an additional execution.</p> <p>When multiple executions are given that match a particular phase, they are executed in the order specified in the POM,<br /> with inherited executions running first.</p> <p>Now, in the case of <code>modello:java</code>, it only makes sense in the <code>generate-sources</code> phase. But some goals can be<br /> used in more than one phase, and there may not be a sensible default. For those, you can specify the phase yourself.<br /> For example, let's say you have a goal <code>display:time</code> that echos the current time to the commandline, and you want<br /> it to run in the <code>process-test-resources</code> phase to indicate when the tests were started. This would be configured<br /> like so:</p> <table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="title=pom.xml" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6dGl0bGU9cG9tLnhtbH0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> ... <plugin> <groupId>com.mycompany.example</groupId> <artifactId>maven-touch-plugin</artifactId> <executions> <execution> <phase>process-test-resources</phase> <goals> <goal>timestamp</goal> </goals> </execution> </executions> </plugin> ... </pre></td></tr></table> <p><br class="atl-forced-newline" /></p> <h1>Lifecycle Reference</h1> <p>The following lists all build phases of the default, clean and site lifecycle, which are executed in the order given<br /> up to the point of the one specified.</p> <h2><strong>Clean Lifecycle</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>pre-clean</code> </p></td> <td class="confluenceTd"><p> executes processes needed prior to the actual project cleaning </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>clean</code> </p></td> <td class="confluenceTd"><p> remove all files generated by the previous build </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>post-clean</code> </p></td> <td class="confluenceTd"><p> executes processes needed to finalize the project cleaning </p></td> </tr> </tbody></table> <h2><strong>Default "build" Lifecycle</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>validate</code> </p></td> <td class="confluenceTd"><p> validate the project is correct and all necessary information is available. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>initialize</code> </p></td> <td class="confluenceTd"><p> initializes the build process <br class="atl-forced-newline" /> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>generate-sources</code> </p></td> <td class="confluenceTd"><p> generate any source code for inclusion in compilation. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-sources</code> </p></td> <td class="confluenceTd"><p> process the source code, for example to filter any values. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>generate-resources</code> </p></td> <td class="confluenceTd"><p> generate resources for inclusion in the package. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-resources</code> </p></td> <td class="confluenceTd"><p> copy and process the resources into the destination directory, ready for packaging. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>compile</code> </p></td> <td class="confluenceTd"><p> compile the source code of the project. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-classes</code> </p></td> <td class="confluenceTd"><p> post-process the generated files from compilation, for example to do bytecode enhancement on Java classes. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>generate-test-sources</code> </p></td> <td class="confluenceTd"><p> generate any test source code for inclusion in compilation. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-test-sources</code> </p></td> <td class="confluenceTd"><p> process the test source code, for example to filter any values. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>generate-test-resources</code> </p></td> <td class="confluenceTd"><p> create resources for testing. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-test-resources</code> </p></td> <td class="confluenceTd"><p> copy and process the resources into the test destination directory. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test-compile</code> </p></td> <td class="confluenceTd"><p> compile the test source code into the test destination directory </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test</code> </p></td> <td class="confluenceTd"><p> run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>package</code> </p></td> <td class="confluenceTd"><p> take the compiled code and package it in its distributable format, such as a JAR. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>pre-integration-test</code> </p></td> <td class="confluenceTd"><p> perform actions required before integration tests are executed. This may involve things such as setting up the required environment. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>integration-test</code> </p></td> <td class="confluenceTd"><p> process and deploy the package if necessary into an environment where integration tests can be run. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>post-integration-test</code> </p></td> <td class="confluenceTd"><p> perform actions required after integration tests have been executed. This may including cleaning up the environment. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>verify</code> </p></td> <td class="confluenceTd"><p> run any checks to verify the package is valid and meets quality criteria. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>install</code> </p></td> <td class="confluenceTd"><p> install the package into the local repository, for use as a dependency in other projects locally. </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>deploy</code> </p></td> <td class="confluenceTd"><p> done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects. </p></td> </tr> </tbody></table> <h2><strong>Site Lifecycle</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> pre-site </p></td> <td class="confluenceTd"><p> executes processes needed prior to the actual project site generation </p></td> </tr> <tr> <td class="confluenceTd"><p> site </p></td> <td class="confluenceTd"><p> generates the project's site documentation </p></td> </tr> <tr> <td class="confluenceTd"><p> post-site </p></td> <td class="confluenceTd"><p> executes processes needed to finalize the site generation, and to prepare for site deployment </p></td> </tr> <tr> <td class="confluenceTd"><p> site-deploy </p></td> <td class="confluenceTd"><p> deploys the generated site documentation to the specified web server </p></td> </tr> </tbody></table> <p>Furthermore, some phases have goals binded to it by default. And for the default lifecycle, the bindings depends on<br /> the <code>packaging</code> value. Here are some of the build-phase-to-goal bindings.</p> <h1><span style="color: rgb(0,0,0);"><strong>Lifecycle Default Bindings Reference</strong></span></h1> <h2><strong>Clean Lifecycle Bindings</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>clean</code> </p></td> <td class="confluenceTd"><p> <code>clean:clean</code> </p></td> </tr> </tbody></table> <h2><strong>Default Lifecycle</strong><strong> Bindings</strong> <strong>- EJB / EJB3 / JAR / PAR / RAR / WAR Packaging</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>process-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:resources</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>compile</code> </p></td> <td class="confluenceTd"><p> <code>compiler:compile</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-test-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:testResource</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test-compile</code> </p></td> <td class="confluenceTd"><p> <code>compiler:testCompile</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test</code> </p></td> <td class="confluenceTd"><p> <code>surefire:test</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>package</code> </p></td> <td class="confluenceTd"><p> <code>ejb:ejb</code> <em>or</em> <code>ejb3:ejb3</code> <em>or</em> <code>jar:jar</code> <em>or</em> <code>par:par</code> <em>or</em> <code>rar:rar</code> <em>or</em> <code>war:war</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>install</code> </p></td> <td class="confluenceTd"><p> <code>install:install</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>deploy</code> </p></td> <td class="confluenceTd"><p> <code>deploy:deploy</code> </p></td> </tr> </tbody></table> <h2><strong>Default Lifecycle</strong><strong> Bindings</strong> <strong>- EAR Packaging</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>generate-resources</code> </p></td> <td class="confluenceTd"><p> <code>ear:generateApplicationXml</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:resources</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>package</code> </p></td> <td class="confluenceTd"><p> <code>ear:ear</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>install</code> </p></td> <td class="confluenceTd"><p> <code>install:install</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>deploy</code> </p></td> <td class="confluenceTd"><p> <code>deploy:deploy</code> </p></td> </tr> </tbody></table> <h2><strong>Default Lifecycle Bindings - maven-plugin Packaging</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>generate-resources</code> </p></td> <td class="confluenceTd"><p> <code>plugin:descriptor</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:resources</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>compile</code> </p></td> <td class="confluenceTd"><p> <code>compiler:compile</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>process-test-resources</code> </p></td> <td class="confluenceTd"><p> <code>resources:testResource</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test-compile</code> </p></td> <td class="confluenceTd"><p> <code>compiler:testCompile</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>test</code> </p></td> <td class="confluenceTd"><p> <code>surefire:test</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>package</code> </p></td> <td class="confluenceTd"><p> <code>jar:jar</code> <em>and</em> <code>plugin:addPluginArtifactMetadata</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>install</code> </p></td> <td class="confluenceTd"><p> <code>install:install</code> <em>and</em> <code>plugin:updateRegistry</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>deploy</code> </p></td> <td class="confluenceTd"><p> <code>deploy:deploy</code> </p></td> </tr> </tbody></table> <h2><strong>Default Lifecycle Bindings - POM Packaging</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>package</code> </p></td> <td class="confluenceTd"><p> <code>site:attach-descriptor</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>install</code> </p></td> <td class="confluenceTd"><p> <code>install:install</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>deploy</code> </p></td> <td class="confluenceTd"><p> <code>deploy:deploy</code> </p></td> </tr> </tbody></table> <h2><strong>Site Lifecycle Bindings</strong></h2> <table class="confluenceTable"><tbody> <tr> <td class="confluenceTd"><p> <code>site</code> </p></td> <td class="confluenceTd"><p> <code>site:site</code> </p></td> </tr> <tr> <td class="confluenceTd"><p> <code>site-deploy</code> </p></td> <td class="confluenceTd"><p> <code>site:deploy</code> </p></td> </tr> </tbody></table>
Please type the word appearing in the picture.
Attachments
Labels
Location
Watch this page
< Edit
Preview >
Loading…
Save
Cancel
Next hint
search
attachments
weblink
advanced