maven bundle插件问题(OSGI)

maven bundle插件问题(OSGI),maven,osgi,Maven,Osgi,我有一个使用maven bundle插件生成OSGI包的项目。配置如下所示: <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.1.0</version> <extensions>true</extensions&

我有一个使用maven bundle插件生成OSGI包的项目。配置如下所示:

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.1.0</version>
    <extensions>true</extensions>
    <inherited>true</inherited>
    <configuration>
        <instructions>
            <Export-Package>${bubble.osgi.exports}</Export-Package>
            <Import-Package>${bubble.osgi.imports}</Import-Package>
            <Embed-Dependency>${bubble.osgi.embed.dependencies}</Embed-Dependency>

            <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
        </instructions>
        <versions>
            <bubble.osgi.version.clean>${project.version}</bubble.osgi.version.clean>
        </versions>
    </configuration>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>cleanVersions</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.apache.felix
maven捆绑插件
2.1.0
真的
真的
${bubble.osgi.exports}
${bubble.osgi.imports}
${bubble.osgi.embed.dependencies}
[$(版本;==;$(@)),$(版本;+;$(@)))
${project.version}
生成源
清洁版本
该项目的结果是一个包含所有osgi内容、嵌入式依赖项等的jar文件。我更希望有两个jar作为结果,一个包含osgi内容,一个不包含,因为嵌入式依赖项在将其用作普通jar时会导致问题


除了使用maven assembly插件,还有其他方法吗?

您可以将maven bundle插件配置移动到单独的配置文件中,并使用类似于

mvn包-Posgi
但每个构建只会生成一个工件。

您可以将maven bundle插件配置移动到单独的配置文件中,并使用类似

mvn包-Posgi
或者默认值。但是每个构建只会生成一个工件。

我建议使用2个不同的pom.xml文件(在项目中),这将生成2个不同的工件

默认的
pom.xml
应该像foo:bar:1.0.0那样生成普通库

另一个
pom osgi.xml
应该像foor:bar osgi:1.0.0那样生成osgi库

要使用另一个pom来构建库,请使用

mvn -f pom-osgi.xml install

我建议使用2个不同的pom.xml文件(在项目中),这将产生2个不同的工件

默认的
pom.xml
应该像foo:bar:1.0.0那样生成普通库

另一个
pom osgi.xml
应该像foor:bar osgi:1.0.0那样生成osgi库

要使用另一个pom来构建库,请使用

mvn -f pom-osgi.xml install