2013-02-28 90 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