2014-11-03 92 views
1

我正在升级表格Apache CXF 2.7.53.0.2但我遇到了下面的问题。Maven没有下载pom类型的任何依赖项

当我包括依赖

<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朱诺Release2M2E 1.3.1

为什么<type>pom</type>是没有得到解决的框架各自的jar文件?

是不是<type>pom</type>依赖关系假设自动给各自的库?如果不是,使用它们有什么好处?

UPDATE

这是我的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> 

感谢

+0

尝试将您的范围更改为“提供”:'提供了'。另外:删除“类型的POM”。 – FoggyDay 2014-11-03 15:40:43

+0

@FoggyDay它没有奏效。 – NikosDim 2014-11-03 15:52:42

回答

1

你依赖的范围是如何导入。这意味着它必须是依赖性管理声明的一部分。 使用依赖关系管理,您不会直接下载依赖关系。这是确保需要特定版本的依赖关系的一种方法。因此进一步下跌的依赖性来你的POM如果声明

<groupId>org.apache.cxf</groupId> 
    <artifactId>cxf</artifactId> 

没有指定版本,行家知道要下载的文物。也控制传递依赖中的版本。

你的POM大概是指物料清单(BOM)

欲了解更多详情,请参阅http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management

+0

我曾试过,但它没有提供版本的投诉。我已经把我的** pom。xml **我的问题 – NikosDim 2014-11-03 16:05:28

+0

这是因为artifact id cxf引用了定义依赖版本(jar版本a.k.a. the bom的列表)而不是特定jar的pom。你必须找到你需要的cxf文物。例如cxf-rt-transports-http是一个cxf工件id – grid 2014-11-03 16:13:23

1

你在哪里包括这种说法?

<scope>import</scope>只是<dependencyManagement>段内有效,即

<dependencyManagement> 
    <dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf</artifactId> 
    <version>3.0.2</version> 
    <type>pom</type> 
    <scope>import</scope> 
    </dependency> 
</dependencyManagement> 

而且,它不依赖下载本身,而是扩展引用POM到位。

如果您只是需要pom,请排除<scope>import</scope>

+0

最初,我在''中有' import',但现在我把它放到''dependencyManagement>'中。 – NikosDim 2014-11-03 15:48:22

+0

我在我的问题中包含了我的pom – NikosDim 2014-11-03 16:04:26