首页 > 解决方案 > 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

标签: javamaven

解决方案


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

你是对的:你不需要添加maven-bundle-pluginas adependency来使bundle包在你的构建中可用。
您需要添加maven-bundle-pluginasplugin来增强默认的 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


推荐阅读