Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

IAM Buckminster Maven Actor

< 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 -DartifactId=my-app ...)
    • Without an existing Maven project (archetype:generate ...)
      • The base directory for this kind of goal can be selected
  • 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 allowed to remove the "-D" prefix in the key-value pairs). These parameters must be enough for the goal so no user intervention is needed during the execution (in other case, the action will never finish when invoked).
    • baseDirectory. Here you can specify a base directory (absolute or relative to the workspace directory) for the goal. This property's value will only be taken into account if the corresponding goal is of the no-pom-needed kind. By default, the base directory will be the component's folder in the workspace (/home/workspace/foo-component, for example).
    • 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.
    • deactivateProfiles. 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). This is set to false by default.

Here you have 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:property key="baseDirectory" value="foo-folder/foo-subfolder"/>
      </cs:properties>
   </cs:public>
   <cs:public name="foo-action-with-parameters-2" actor="maven">
      <cs:actorProperties>
         <cs:property key="goal" value="install"/>
      </cs:actorProperties>
      <cs:properties>
         <cs:property key="profiles" value="profile-1 profile-2 profile-3"/>
         <cs:property key="deactivateProfiles" value="true"/>
      </cs:properties>
   </cs:public>
</cs:actions>

Back to the top