osgi-dp maven插件学习使用

插件作者

osgi-dp 插件是由Jens Reimann 开发和维护的,主要用于将 Maven 项目打包为 OSGi 部署包。

GitHub地址:ctron/osgi-dp: Maven plugin for creating OSGi deployment packages

插件描述

OSGi DP Maven 插件根据Eclipse Tycho™ 功能、捆绑包或任何其他 Maven Java 项目的配置创建 OSGi 部署包。

除了 Tycho 提供的功能外,插件目标构建还将创建一个包含所有直接包含的 bundle 的 DP 存档。这包括包含的功能包含的 bundle(不开玩笑)。

P2 功能可以将依赖项引用为“包含”或“必需”。“包含”的依赖项将成为该功能的一部分。OSGiDP 插件对此表示支持。它将遍历所有依赖项,并且仅包含标记为“包含”的依赖项。如果依赖项是一项功能并且它是“包含的”,则其功能和捆绑包也将被考虑。

此外,还可以指定将包含的 “additional dependencies” 列表。

当插件用作扩展时,也可以使用 Maven 打包类型 dp。

参考地址:OSGi distribution package builder – Introduction

单个pom模块生成dp包

Pom中配置属性eclipse-plugin

插件配置如下,执行mvn clean package -f pom.xml将在target目录生成相应的dp包,比如artifact.dp

<plugins>
    …
   <plugin>
       <groupId>de.dentrassi.maven</groupId>
       <artifactId>osgi-dp</artifactId>
       <executions>
           <execution>
                <goals>
                    <goal>build</goal>
                </goals>
           </execution>
       </executions>
   </plugin>
    …
</plugins>

聚合功能模块生成dp包

父POM相关配置如下,执行mvn clean package -f pom.xml将在target目录生成相应的dp包,其中dp包包含了additionalDependencies中设置的子模块。子模块的pom文件中属性packaging的配置必须是:eclipse-plugin

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module14</module>
</modules>
<build>
    <plugins>
        <plugin>
            <groupId>de.dentrassi.maven</groupId>
            <artifactId>osgi-dp</artifactId>
            <version>${osgi-dp-plugin-version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <additionalDependencies>
                    <dependency>
                        <groupId>com.example</groupId>
                        <artifactId>module1</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.example</groupId>
                        <artifactId>module2</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.example</groupId>
                        <artifactId>module3</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.example</groupId>
                        <artifactId>module4</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                </additionalDependencies>
            </configuration>
        </plugin>
    </plugins>
</build>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

螺旋小蜗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值