2017-10-18 37 views
0

我需要将另一个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导入都已正确生成),但它在资源方面失败...

任何想法如何制作它?所有东西都被解压到目标/类中,但这些东西没有打包到目标罐中......

+0

如果你建立与org.apache.felix您的OSGi包:Maven的捆绑-plugin,可以配置嵌入依赖性配置指令嵌入的依赖关系。我不知道它是否会包含您需要的XML,但您可以尝试一下。文档:http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html#embedding-dependencies – gjoranv

回答

0

对于您的预期行为,您可以使用maven-assembly-plugin插件。实际上,正如文档中所报告的那样,它将创建一个JAR,其中包含项目的二进制输出以及解压后的依赖关系。

使用的jar-有依赖性,以创建一个包含项目的二进制 输出,沿其解压缩的依赖关系的JAR为您汇编插件 配置的descriptorRef。内置描述符 使用JAR归档格式生成一个包含分类器 jar-with-dependencies的程序集。

对于额外的详细信息,请maven-assembly-plugin docs

这么说了,你可以像其配置如下:

<build> 
... 
    <plugins> 
    ... 
     <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2.2</version> 
       <executions> 
        <execution> 
         <id>assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
         <configuration> 
          <descriptorRefs> 
           <descriptorRef>jar-with-dependencies</descriptorRef> 
          </descriptorRefs> 
          <archive> 
          </archive> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
    ... 
    </plugins> 
... 
</build> 
相关问题