我需要将另一个jar的全部内容包含到我的jar中。这是因为我需要将不符合OSGi的库封装到OSGi容器中。包含maven依赖插件的另一个jar的全部内容
受影响的图书馆是萨克森 - 他和我找到了一个包装它的项目:https://github.com/lucee/osgi-bundle-saxon-he.git。这里是使用的maven依赖插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>unpack</id>
<phase>validate</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.7.0-10</version>
<type>jar</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</artifactItem>
</artifactItems>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
问题是,这个解决方案不包含所有东西。原始jar根目录下的XML文件丢失,当库尝试读取它们时抛出异常...
我试图改变任务的阶段,但没有成功...解决方案完美地与java类一起工作(之后,调用maven-bundle-plugin,并且所有OSGi导入都已正确生成),但它在资源方面失败...
任何想法如何制作它?所有东西都被解压到目标/类中,但这些东西没有打包到目标罐中......
如果你建立与org.apache.felix您的OSGi包:Maven的捆绑-plugin,可以配置嵌入依赖性配置指令嵌入的依赖关系。我不知道它是否会包含您需要的XML,但您可以尝试一下。文档:http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html#embedding-dependencies – gjoranv