我正在将 Apache CXF 2.7.5 升级到 3.0.2 但我遇到了以下问题。
当我包含依赖项时
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf</artifactId>
<version>3.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
到我的 pom.xml 我没有看到任何 .jar 文件下载到我的项目。项目没有错误。
我正在使用 Maven 3.2.3 与 Eclipse Juno Release2 和 m2e 1.3.1
为什么 <type>pom</type>
没有解析到框架的相应 jar 文件?
不是 <type>pom</type>
依赖项应该自动提供相应的库?如果不是,使用它们有什么好处?
更新
这就是我的 pom.xml 的样子
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.sysman</groupId>
<artifactId>serviceWrapper</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>serviceWrapper Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf</artifactId>
<version>3.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf</artifactId>
</dependency>
</dependencies>
<build>
<finalName>serviceWrapper</finalName>
<pluginManagement>
<plugins></plugins>
</pluginManagement>
<plugins></plugins>
</build>
</project>
谢谢
最佳答案
您的依赖范围是导入。这意味着它必须是依赖管理声明的一部分。 使用依赖项管理,您不是直接下载依赖项。这是一种确保需要特定版本依赖项的方法。如果你声明
<groupId>org.apache.cxf</groupId>
<artifactId>cxf</artifactId>
在不指定版本的情况下,maven 知道要下载哪些 Artifact 。还控制传递依赖项中的版本。
您的 pom 可能是指 Material list (BOM)
关于java - Maven 没有下载 pom 类型的任何依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26717235/