Difference between revisions of "IAM Buckminster Maven Actor"

From Eclipsepedia

Jump to: navigation, search
(Features)
(Maven actor syntax)
Line 15: Line 15:
 
=Maven actor syntax=
 
=Maven actor syntax=
  
Actor properties and regular properties can be passed to the Maven actor. Right now, there's only one supported actor property, named "goal", which specifies which Maven goal needs to be performed. Maven goals can be parametrized, and those parameters (if needed) must be specified in the "executionParameters" property. The executionParameters value must consist in a list of key-value pairs, optionally preceded by the usual "-D" prefix. Let's see some valid action examples (by the way, the Maven actor name is "maven"):
+
This is the supported Maven actor syntax at the moment:
 +
 
 +
* The actor name (to be used in the actions' "actor" attribute) is <b>maven</b>.
 +
* Actor properties:
 +
** <b>goal</b>. The desired Maven goal goes here.
 +
* Properties:
 +
** <b>executionParameters</b>. This is an optional list of execution parameters for the specified goal. This list must follow the same syntax as in console Maven (but it's also fine to remove the "-D" prefix in the key-value pairs).
 +
** <b>profiles</b>. Here you can choose a list of profiles to be active during the goal execution. These profiles must be defined inside the project's pom.xml.
 +
** <b>deactiveProfiles</b>. If set to true, this option will cause the goal to be executed without taking into account any active profile (except for those which may be specified in the <b>profiles</b> property).
 +
 
 +
Here are some valid examples:
  
 
<source lang=xml>
 
<source lang=xml>
 
<cs:actions>
 
<cs:actions>
 +
  <cs:public name="foo-install-action" actor="maven">
 +
      <cs:actorProperties>
 +
        <cs:property key="goal" value="install"/>
 +
      </cs:actorProperties>
 +
  </cs:public>
 +
  <cs:public name="foo-eclipse-eclipse-action" actor="maven">
 +
      <cs:actorProperties>
 +
        <cs:property key="goal" value="eclipse:eclipse"/>
 +
      </cs:actorProperties>
 +
  </cs:public>
 
   <cs:public name="foo-action-with-parameters" actor="maven">
 
   <cs:public name="foo-action-with-parameters" actor="maven">
 
       <cs:actorProperties>
 
       <cs:actorProperties>
Line 35: Line 55:
 
         <cs:property key="executionParameters"  
 
         <cs:property key="executionParameters"  
 
             value="archetypeGroupId=org.apache.maven.archetypes groupId=com.mycompany.app artifactId=my-app"/>
 
             value="archetypeGroupId=org.apache.maven.archetypes groupId=com.mycompany.app artifactId=my-app"/>
 +
        <cs:property key="profiles" value="profile-1 profile-2 profile-3"/>
 +
<cs:property key="deactivateProfiles" value="true"/>
 
       </cs:properties>
 
       </cs:properties>
  </cs:public>
 
  <cs:public name="foo-install-action" actor="maven">
 
      <cs:actorProperties>
 
        <cs:property key="goal" value="install"/>
 
      </cs:actorProperties>
 
  </cs:public>
 
  <cs:public name="foo-eclipse-eclipse-action" actor="maven">
 
      <cs:actorProperties>
 
        <cs:property key="goal" value="eclipse:eclipse"/>
 
      </cs:actorProperties>
 
 
   </cs:public>
 
   </cs:public>
 
</cs:actions>
 
</cs:actions>

Revision as of 06:44, 10 October 2008

< To: IAM

Introduction

An IAM-based Maven actor for Buckminster is under development and here we'll describe its features and API. If you are not familiar with Buckminster's actions and actors, here you will find detailed information.

Features

The Maven actor is capable of the following right now. Expect the list to grow!

  • Execution of Maven goals:
    • Without parameters (install, eclipse:eclipse)
    • With parameters (archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app artifactId=my-app)
    • Without an existing Maven project (archetype:generate ...)
  • Profiles selection

Maven actor syntax

This is the supported Maven actor syntax at the moment:

  • The actor name (to be used in the actions' "actor" attribute) is maven.
  • Actor properties:
    • goal. The desired Maven goal goes here.
  • Properties:
    • executionParameters. This is an optional list of execution parameters for the specified goal. This list must follow the same syntax as in console Maven (but it's also fine to remove the "-D" prefix in the key-value pairs).
    • profiles. Here you can choose a list of profiles to be active during the goal execution. These profiles must be defined inside the project's pom.xml.
    • deactiveProfiles. If set to true, this option will cause the goal to be executed without taking into account any active profile (except for those which may be specified in the profiles property).

Here are some valid examples:

<cs:actions>
   <cs:public name="foo-install-action" actor="maven">
      <cs:actorProperties>
         <cs:property key="goal" value="install"/>
      </cs:actorProperties>
   </cs:public>
   <cs:public name="foo-eclipse-eclipse-action" actor="maven">
      <cs:actorProperties>
         <cs:property key="goal" value="eclipse:eclipse"/>
      </cs:actorProperties>
   </cs:public>
   <cs:public name="foo-action-with-parameters" actor="maven">
      <cs:actorProperties>
         <cs:property key="goal" value="archetype:generate"/>
      </cs:actorProperties>
      <cs:properties>
         <cs:property key="executionParameters" 
             value="-DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app"/>
      </cs:properties>
   </cs:public>
   <cs:public name="foo-action-with-parameters-2" actor="maven">
      <cs:actorProperties>
         <cs:property key="goal" value="archetype:generate"/>
      </cs:actorProperties>
      <cs:properties>
         <cs:property key="executionParameters" 
             value="archetypeGroupId=org.apache.maven.archetypes groupId=com.mycompany.app artifactId=my-app"/>
         <cs:property key="profiles" value="profile-1 profile-2 profile-3"/>
	 <cs:property key="deactivateProfiles" value="true"/>
      </cs:properties>
   </cs:public>
</cs:actions>