blob: 01d7653f42128786708c8c26159dc09162bc9c68 [file] [log] [blame]
------
Using the Object Teams OTDRE Parent POM
------
Olaf Otto & Stephan Herrmann
------
2019-12-08
------
Using the Object Teams OTDRE Parent POM
Declaring this module as the parent of your project will add basic capabilities
for using OT/J in your sources.
* Weaving schemes OTRE vs. OTDRE
This pom supports the dynamic {{{http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/weavingscheme.html}weaving scheme OTDRE}}.
For the traditional OTRE please use {{{../objectteams-parent-pom}org.eclipse.objectteams:objectteams-parent-pom}} instead.
* 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>
+-----
[[1]] declare the parent pom
+-----
<parent>
<groupId>org.eclipse.objectteams</groupId>
<artifactId>objectteams-otdre-parent-pom</artifactId>
<version>2.7.6</version>
</parent>
+-----
Starting with version 2.1.1 the parent pom also supports using OT/J in tycho builds (projects using OSGi).
* Example
See the {{{../objectteams-compile-test}objectteams-compile-test}} project for an example of how to use this parent pom.
* Under the hood
** Standard OT/J dependencies documented
All OT/J projects using the <<<objectteams-otdre-parent-pom>>> implicitly depend on the following artifacts which are developed
independent of maven and simply repackaged using the {{{../objectteams-artifact-deployer}org.eclipse.objectteams:objectteams-artifact-deployer}} module:
[org.eclipse.objectteams:objectteams-runtime] the Object Teams runtime (minimal OT/J API) repackaged from the <<<org.eclipse.objectteams.runtime>>> OSGi bundle.
[org.eclipse.objectteams:objectteams-otdre] the Object Teams Dynamic Runtime Environment (the bytecode weaver) repackaged from the <<<org.eclipse.objectteams.otredyn>>> OSGi bundle.
[org.eclipse.objectteams:objectteams-otdre-agent] the Java agent that hooks the Object Teams runtime into the JVM (repackaged from file <<<otredyn_agent.jar>>>
from the <<<org.eclipse.objectteams.otdt>>> project).
[org.eclipse.objectteams:objectteams-otj-compiler] a compatible replacement for <<<org.eclipse.tycho:org.eclipse.jdt.core>>> that enables the
<<<org.eclipse.tycho:tycho-compiler-jdt>>> plugin to compile OT/J sources.
[]
The following modules are indirectly used:
[org.ow2.asm:asm] the original {{{http://asm.ow2.org/}ASM}} byte code library, along with its auxiliary modules <<<asm-commons>>>, <<<asm-tree>>>, <<<asm-util>>> and <<<asm-analysis>>>