我有一些Java / OSGi项目,我希望构建并打包为一个部署包。
我使用Tycho编译特定目标平台的源代码,所有依赖项都在本地p2存储库中。
如果我在我的pom.xml中设置<packaging>eclipse-plugin</packaging>
,那么构建就可以了,但我得到一个.jar作为输出。
当我使用maven-bundle-plugin并设置<packaging>bundle</packaging>
构建中断时,因为它使用标准的maven-compiler-plugin而不是Tycho进行编译。
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.5</version>
<extensions>true</extensions>
<configuration>
<manifestLocation>META-INF</manifestLocation>
<instructions>
<Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>
javax.net;resolution:=optional,
javax.net.ssl;resolution:=optional
</Import-Package>
<Export-Package>my.project.package</Export-Package>
</instructions>
</configuration>
</plugin>
如何使用Tycho强制编译?或者还有其他方法可以做我需要的吗?
答案 0 :(得分:1)
答案可能会有点晚,但我最近创建了一个Maven插件&#34; de.dentrassi.maven:osgi-dp&#34;这可以创造那些&#34; DP&#34; s。
请参阅:https://ctron.github.io/osgi-dp/plugin-info.html
你可以创建一个专门的&#34; dp&#34;打包或重复使用Eclipse Tycho的功能元数据:
<plugin>
<groupId>de.dentrassi.maven</groupId>
<artifactId>osgi-dp</artifactId>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
有关使用Tycho进行编译和&#34; osgi-dp&#34;的完整示例有关创建部署包的信息,请参阅integration test at GitHub。