我在项目中运行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
答案 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解决此问题。