maven-ipojo-plugin使用指南

1. 基本配置

要使用iPOJO的maven插件(maven-ipojo-plugin),就要使用如下的配置(需要将$YOUR_XXX的部分替换成你需要的)

iPOJO maven plugin通常要和BND maven plugin(maven-bundle-plugin)一起使用,且需要<package/>的值为bundle,但是这两个插件的配置是完全分开的。所以你可以使用到所有的BND插件的所有功能特性。上面的pom配置实例中iPOJO配置的部分可以不经修改的使用到你的eclipse工程中,前提条件是你的ipojo metadata文件要么在src/main/ipojo目录下,要么在src/main/resources目录下,而且必须以metadata.xml命名。

其实metadata文件对打包后的bundle没有作用,因为metadata文件会被iPOJO maven plugin解析,并以另一种格式写到打包后的jar的META-INF/MANIFEST.MF文件里面,作为iPOJO-Components的值。默认情况metadata文件是不会出现在最后的jar里面的。

2. 高级配置

指定ipojo metadata文件的配置路径和文件名,甚至是目录

例如:

在<metadata>标签中,你可以指定metadata文件或者是多个metadata文件所在目录。文件路径是相对工程根目录来说的。如果没有配置默认情况ipojo插件会先在src/main/ipojo或者src/main/resources目录下查找metadata.xml文件,如果没找到,就找target/classes/metadata.xml和工程根目录下的metadata.xml。

设置跳过annotation的处理

要跳过annotation的处理,可以在<configuration>标签中配置<ignoreAnnotations>,例如:

iPOJO xml schema的使用

一般就用官方的schema就行了,有了xml schema在配置component和instance的时候就方便很多。

当然不使用xml schema也没有问题,iPOJO maven plugin会使用内嵌的xml schema来解析你配置的metadata文件。如果想让iPOJO maven plugin不使用内嵌的xml schema,可以配置<ignoreEmbeddedSchemas>为true,例如:

(可能不能访问外网的公司,需要使用ipojo xml schema时,需要把xsd放在内网中,这时候就需要这个功能了吧)

使用maven命令(skeleton)来创建一个iPOJO bundle工程

maven-ipojo-plugin提供了一个方便的创建iPOJO bundle工程的方案,你只需要根据需要执行下面的maven命令即可:

这个命令会生成pom.xml、src/main/java和src/main/resources目录,以及groupId.artifactId组成的包名目录,还有使用了iPOJO annotation的实例代码。需要注意的是,pom.xml中的maven-ipojo-plugin将默认使用最新的版本,如需使用低版本需要手动修改pom.xml。

在pom.xml中配置iPOJO的metadata

( 额,这种方式感觉不太雅~~不建议使用)

3. Reference

maven-ipojo-plugin的官方文档:http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-maven-plug-in.html

原创文章:maven-ipojo-plugin使用指南,转载请注明:转载自戎码一生

Post Footer automatically generated by wp-posturl plugin for wordpress.