2013-02-28 91 views
3

我已经在类型为pom的项目中声明了所有spring依赖项并将其安装。Maven无法在本地repo中找到依赖关系

我的项目的使用公共依赖pom的pom如下。但它似乎maven不使用/不能找到依赖关系pom

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.bookme</groupId> 
    <artifactId>portal</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>portal</name> 

    <properties> 
     <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.bookme.common</groupId> 
      <artifactId>common-dependencies</artifactId> 
      <version>1.0</version> 
      <type>pom</type> 
     </dependency>  
    </dependencies> 
    </dependencyManagement> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArguments> 
         <endorseddirs>${endorsed.dir}</endorseddirs> 
        </compilerArguments> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.6</version> 
       <executions> 
        <execution> 
         <phase>validate</phase> 
         <goals> 
          <goal>copy</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${endorsed.dir}</outputDirectory> 
          <silent>true</silent> 
          <artifactItems> 
           <artifactItem> 
            <groupId>javax</groupId> 
            <artifactId>javaee-endorsed-api</artifactId> 
            <version>6.0</version> 
            <type>jar</type> 
           </artifactItem> 
          </artifactItems> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

有谁能告诉我我做错了什么? 谢谢

+2

请从Maven发布错误消息。 – 2013-02-28 10:32:40

+0

你有没有安装你的依赖pom到本地m2回购? – 2013-02-28 11:14:59

回答

2
  1. 你有没有安装你的依赖pom到你本地m2存储库?

  2. scope作为import给你依赖性pom。看here更多细节

<dependencyManagement> 
<dependencies> 
    <dependency> 
     <groupId>com.bookme.common</groupId> 
     <artifactId>common-dependencies</artifactId> 
     <version>1.0</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency>  
</dependencies> 
</dependencyManagement> 

考虑以下事实也

  • 不要试图导入在 当前POM的子模块定义的POM。试图这样做会导致构建失败 ,因为它无法找到pom。

  • 决不声明POM导入聚甲醛作为目标POM的父(或祖父母, 等)。没有办法解决循环 并且会抛出异常。

  • 当提到poms具有传递依赖关系的工件时 项目将需要指定这些工件的版本为 受管依赖关系。不这样做会导致构建失败 ,因为工件可能没有指定的版本。 (在任何情况下,这应该是 被认为是最佳实践,因为它使 工件的版本不会从一个构建更改为下一个)。

+0

谢谢,但加入导入没有解决问题。这是我的依赖关系POM com.bookme.common 共依赖性 1.0 POM <依赖性> org.springframework 弹簧上下文 3.2 0.1。RELEASE 提供 2013-02-28 11:01:02

+0

@SachinChandorkar:请提高与聚甲醛依赖性 – 2013-02-28 11:06:33

+0

上面的问题是包含依赖性POM的例子。尽管我已经将它安装在本地repo中,但maven没有找到它,并且我的项目构建失败。 – 2013-02-28 11:51:25