Maven:`未知包装:bundle`依赖包装中的错误

时间:2018-06-27 19:02:48

标签: java maven

我在项目中运行mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies,并且看到以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies (default-cli) on project beam-sdks-java-core: Some problems were encountered while processing the POMs:
[ERROR] [ERROR] Unknown packaging: bundle @ line 6, column 16: 1 problem was encountered while building the effective model for org.xerial.snappy:snappy-java:1.1.4
[ERROR] [ERROR] Unknown packaging: bundle @ line 6, column 16

看Snappy的pom文件,看起来像这样:

<?xml version='1.0' encoding='UTF-8'?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.xerial.snappy</groupId>
    <artifactId>snappy-java</artifactId>
    <packaging>bundle</packaging>
    <description>snappy-java: A fast compression/decompression library</description>
    <version>1.1.4</version>
    <name>snappy-java</name>
    ....

具体来说,<packaging>bundle</packaging>行似乎是问题所在。

我尝试将maven-bundle-plugin添加到我自己的POM文件的<build>标记中,但是那不能解决(为什么呢?我认为依赖项的配置不会影响我的pom?)

如何为依存关系启用maven-bundle-plugin?我是否需要将其添加到pom中指向apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies的特定小节中?

另外,有关其他信息,我的Maven版本是3.5.0

2 个答案:

答案 0 :(得分:3)

  

我尝试将maven-bundle-plugin添加到我自己的POM文件的   标签,但无法解决(为什么要这么做?我认为   依赖项的配置不应该影响我的pom?

您是对的:您不需要将maven-bundle-plugin作为dependency 添加以使bundle包在您的版本中可用。
您需要将maven-bundle-plugin作为plugin添加到 增强默认的Maven生命周期,例如:

<build>
  <plugins>
     <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Include-Resource> 
                     ....
                </Include-Resource>
            </instructions>
        </configuration>
     </plugin>
  </plugins>
<build>

您可以在apache-felix-maven-bundle-plugin中找到信息。

答案 1 :(得分:1)

这实际上是snappy-java 1.1.4的问题。他们的pom不包含bundle插件。但是,版本1.1.7切换到jar包装。

您可以使用maven-dependency-plugin 2.10解决此问题。