Using Object Teams with Maven3

Declaring org.eclipse.objectteams:objectteams-otdre-parent-pom as the parent of your project will add basic capabilities for using OT/J in your sources.

Include the parent pom

For simple cases two declarations in your pom will suffice:

  1. declare the maven repository for fetching Object Teams related modules
            <repositories>
                    <repository>
                            <id>ObjectTeamsRepository</id>
                            <name>Object Teams Repository</name>
                            <url>http://download.eclipse.org/objectteams/maven/3/repository</url>
                    </repository>
            </repositories>
  2. declare the parent pom
            <parent>
                    <groupId>org.eclipse.objectteams</groupId>
                    <artifactId>objectteams-otdre-parent-pom</artifactId>
                    <version>2.7.6</version>
            </parent>

    This variant will use the new weaving scheme OTDRE. Simply changing the above from objectteams-otdre-parent-pom to objectteams-parent-pom will select the traditional OTRE.

Effect

The above steps suffice to let you

  • use OT/J syntax in your .java sources and have it compiled just like plain Java.
  • run OT/J programs via surfire, e.g., as JUnit tests. A predefined <surefire.argline> is used that ensures that all required jars are on the classpath and the OT/J agent is activated.

Override inherited declarations

The following declarations, although inherited from objectteams-parent-pom should be overridden per project:

  • <scm>
  • <url>
  • <distributionManagement><site>

Note that Maven doesn't cope well with declarations depending on properties like <project.artifactId> when this declaration is inherited from a project's parent.

Source

See the full source of pom.xml.