Include Page | ||||
---|---|---|---|---|
|
HTML |
---|
<div class="content">
|
...
How to use the iPOJO Maven Plug-in
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Basic configuration
To use the iPOJO Maven plug-in, edit the following pom.xml (replace all
...
$XXX elements):
Div | |||
---|---|---|---|
| panel
| ||
<project> <packaging>bundle</packaging> <!-- Use the BND Maven plug-in --> <dependencies> DEPENDENCIES <pluginRepositories> <pluginRepository> <id>apache.snapshots</id> <name>snapshot plugins</name> <url> http://people.apache.org/repo/m2-snapshot-repository ![]() </url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <build> <version>1. 76. 6-SNAPSHOT<0</version> |
The iPOJO Maven Plug-in is generally used with the BND Maven Plug-in (more details here). However the two configurations are completely separated. So, you can use all BND Maven plug-in features. The iPOJO configuration section can be used as previously written without any changes. However it requires that your metadata file is either inside src/main/ipojo
or inside the
...
src/main/resources
...
folder and
...
named "metadata.xml".
Execution
To manipulate your project, use the "mvn clean install" command. The output should be like:
Div | ||
---|---|---|
| ||
Panel | Wiki Markup | [INFO \] Scanning for projects... \
] \--------------------------------------------------------------------------- \- \
] Building Hello Client \
] task-segment: \[clean, install \] \
] \--------------------------------------------------------------------------- \- \
] \[clean:clean \] \
] Deleting directory D:\clement\workspaces\iPOJO-Dev\hello.client\target \
] Deleting directory D:\clement\workspaces\iPOJO-Dev\hello.client\target\classes \
] Deleting directory D:\clement\workspaces\iPOJO-Dev\hello.client\target\test-classes \
] Deleting directory D:\clement\workspaces\iPOJO-Dev\hello.client\target\site \
] \[resources:resources \] \
] Using default encoding to copy filtered resources. \
] Copying 1 resource \
] \[compiler:compile \] \
] Compiling 1 source file to D:\clement\workspaces\iPOJO-Dev\hello.client\target\classes \
] \[resources:testResources \] \
] Using default encoding to copy filtered resources. \
] Resource directory does not exist: D:\clement\workspaces\iPOJO-Dev\hello.client\src\test\resources \
] \[compiler:testCompile \] \
] No sources to compile \
] \[surefire:test \] \
] No tests to run. \
] \[bundle:bundle \] \
] \[org.apache.felix.ipojo.:ipojo-bundle \{execution: default} \] \
] Start bundle manipulation \
] Metadata File : D:\clement\workspaces\iPOJO-Dev\hello.client\target\classes\metadata.xml \
] Input Bundle File : D:\clement\workspaces\iPOJO-Dev\hello.client\target\hello.client-0.0.1.jar \
] Bundle manipulation - SUCCESS \
] \[install:install \] \
] Installing D:\clement\workspaces\iPOJO-Dev\hello.client\target\hello.client-0.0.1.jar to D:\Dev\maven-repo\ipojo\example\hello.client\0.0.1\hello.client-0.0.1.jar \
] \----------------------------------------------------------------------- \- \
] BUILD SUCCESSFUL \
] \----------------------------------------------------------------------- \- \
] Total time: 9 seconds \
] Finished at: Mon Aug 13 14:04:55 CEST 2007 \
] Final Memory: 6M/13M \
] \----------------------------------------------------------------------- \- |
Configuration Options
You can configure the localization of the iPOJO metadata file as following:
Div | |||
---|---|---|---|
| panel
| ||
<plugin> <version>1. 76. 6-SNAPSHOT<0</version> |
In the metadata element, you can specify your metadata
...
file or directory. The given file path is relative to the root directory ("./ipojo/meta.xml"). If the specified location is a directory, all contained XML files will be used. By default, the plugin searches metadata files into the src/main/ipojo
folder. If not found then it searches for target/classes/metadata.xml
and ./metadata.xml
.
Note: The directory support was introduced in the 1.7.0
version. Previously only one metadata file was found.
Compatibility: Before the 1.7.0
, the set location was searched in all resource folders. This is no more supported because it's an anti-pattern.
The second option allows skipping annotations processing, by using the
...
ignoreAnnotations
...
element:
Div | ||||
---|---|---|---|---|
| panel||||
<plugin> <version>1. 76. 6-SNAPSHOT<0</version> Column | | |||
| ||||
Include Page | FELIX:apache-felix-ipojo-menu | FELIX:apache-felix-ipojo-menu
You can also ignore embedded XML-Schemas to use external ones. To do so, add the ignoreEmbeddedSchemas
. If set to true
, the manipulator doesn't use embedded XML-Schemas:
Div | ||
---|---|---|
| ||
<plugin> |
Generate the skeleton of your iPOJO bundle
The maven-ipojo-plugin provides a way to generate the skeleton of your project. To generate this structure, just launch the following command:
Code Block |
---|
mvn org.apache.maven.plugins:maven-archetype-plugin:generate \
-DarchetypeArtifactId=maven-ipojo-plugin \
-DarchetypeGroupId=org.apache.felix \
-DartifactId=ARTIFACT_NAME_OF_YOUR_PROJECT \
-DgroupId=GROUP_ID_OF_YOUR_PROJECT \
-DarchetypeVersion=VERSION_OF_YOUR_PROJECT \
-DpackageName=PACKAGE_NAME
|
This command generates :
- a pom file (to update),
- the src/main/java and src/main/resources folders,
- the structure of your package name.
The generated project uses iPOJO annotation and is ready to be deployed.
Info | ||
---|---|---|
| ||
The maven-ipojo-plugin archetype generates a pom file using the latest released version of the maven-ipojo-plugin. |
Describing iPOJO configuration in the pom file
It is also possible to describe iPOJO components and instances inside the pom file (avoiding using a externalized file). The configuration can be described in the metadata
attribute inside a CDATA block.
Div | ||
---|---|---|
| ||
<plugin> |
Include Page | ||||
---|---|---|---|---|
|