Maven依赖关系无法解决

时间:2011-12-04 08:52:07

标签: maven-plugin maven-3

我正在使用 Apache Maven3 ,因为两三天后一些依赖项无法解决,首先没有出现问题。更具体地说:

  1. maven-findbgs-plugin:plugin:1.3.1
  2. maven-cobertura-plugin:plugin:1.3
  3. maven本身不应该包括它们吗?

    我的pom.xml文件:

    <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>
      <artifactId>xyz</artifactId>
      <name>xyz</name>
      <description>xyz</description>
      <repositories>
          <repository>  
            <id>prime-repo</id>  
            <name>PrimeFaces Maven Repository</name>  
            <url>http://repository.primefaces.org</url>  
            <layout>default</layout>  
        </repository>  
      </repositories>
      <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.webflow</groupId>
            <artifactId>spring-faces</artifactId>
            <version>${springwebflow-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${springsecurity-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${springsecurity-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${springsecurity-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- Communication to PowerTAC Server -->
    
          <dependency>
          <groupId>joda-time</groupId>
          <artifactId>joda-time</artifactId>
          <version>2.0</version>
        </dependency>
        <dependency>
          <groupId>com.thoughtworks.xstream</groupId>
          <artifactId>xstream</artifactId>
          <version>1.4.1</version>
          <type>jar</type>
          <scope>compile</scope>
        </dependency>
        <dependency>
        <groupId>javax.jms</groupId>
        <artifactId>jms-api</artifactId>
        <version>1.1-rev-1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-all</artifactId>
        <version>5.5.1</version>
    </dependency>
    <dependency>
        <groupId>activecluster</groupId>
        <artifactId>activecluster</artifactId>
        <version>20040423.075722</version>
    </dependency>
    <dependency>
        <groupId>xmlbeans</groupId>
        <artifactId>xbean</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>javacc</groupId>
        <artifactId>javacc</artifactId>
        <version>4.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
        <version>3.0.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.spec.javax.ws.rs</groupId>
        <artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
        <version>1.0.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom</artifactId>
        <version>1.1.2</version>
    </dependency>
    
    
    
    
        <!-- Sun Mojarra JSF 2 runtime -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.0.2.GA</version>
        </dependency>
          <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-core</artifactId>
           <version>3.3.2.GA</version>
        </dependency>
        <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-annotations</artifactId>
           <version>3.4.0.GA</version>
        </dependency>
        <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-commons-annotations</artifactId>
           <version>3.3.0.ga</version>
        </dependency>
        <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-entitymanager</artifactId>
           <version>3.4.0.GA</version>
        </dependency> 
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb-api</artifactId>
            <version>3.0</version>
        </dependency>
            <!-- PrimeFaces component library -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.powertac</groupId>
            <artifactId>server-interface</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
      </dependencies>
      <packaging>war</packaging>
      <properties>
        <java-version>1.5</java-version>
        <springframework-version>3.0.5.RELEASE</springframework-version>
        <springwebflow-version>2.3.0.RELEASE</springwebflow-version>
        <springsecurity-version>3.0.3.RELEASE</springsecurity-version>
        <org.slf4j-version>1.5.10</org.slf4j-version>
      </properties>
      <groupId>org.powertac</groupId>
      <version>0.0.1-SNAPSHOT</version>
    </project>
    

    在我的IDE(Springsource工具套件)中,我收到以下警告 Warning of IDE

    当我在shell中执行类似“mvn compile”的操作时,会发生以下错误:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building xcz 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [WARNING] The artifact javacc:javacc:jar:4.0 has been relocated to net.java.dev.
    javacc:javacc:jar:4.0
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 1.193s
    [INFO] Finished at: Sun Dec 04 10:11:47 CET 2011
    [INFO] Final Memory: 9M/160M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project xyz: Could not resolve depend
    encies for project xyz:war:0.0.1-SNAPSHOT: The following a
    rtifacts could not be resolved: maven-plugins:maven-cobertura-plugin:plugin:1.3,
     maven-plugins:maven-findbugs-plugin:plugin:1.3.1, Failure to find maven-plugins:maven-cobertura-plugin:plugin
    :1.3 in http://repository.primefaces.org was cached in the local repository, res
    olution will not be reattempted until the update interval of prime-repo has elap
    sed or updates are forced -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
    ch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please rea
    d the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyReso
    lutionException
    

    当我插入下面提到的插件并执行mvn site时,会出现以下错误消息:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building xyz 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    Downloading: http://repo1.maven.org/maven2/org/primefaces/primefaces/2.2.1/prime
    faces-2.2.1.pom
    [WARNING] The POM for org.primefaces:primefaces:jar:2.2.1 is missing, no depende
    ncy information available
    [WARNING] The artifact javacc:javacc:jar:4.0 has been relocated to net.java.dev.
    javacc:javacc:jar:4.0
    Downloading: http://repo1.maven.org/maven2/org/primefaces/primefaces/2.2.1/prime
    faces-2.2.1.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 1.609s
    [INFO] Finished at: Sun Dec 04 10:35:51 CET 2011
    [INFO] Final Memory: 9M/160M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project xyz: Could not resolve depend
    encies for project xyz:war:0.0.1-SNAPSHOT: The following a
    rtifacts could not be resolved: maven-plugins:maven-cobertura-plugin:plugin:1.3,
     maven-plugins:maven-findbugs-plugin:plugin:1.3.1, org.primefaces:primefaces:jar
    :2.2.1: Failure to find maven-plugins:maven-cobertura-plugin:plugin:1.3 in http:
    //repo1.maven.org/maven2 was cached in the local repository, resolution will not
     be reattempted until the update interval of central has elapsed or updates are
    forced -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
    ch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please rea
    d the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyReso
    

    任何帮助都是高度关注的。

3 个答案:

答案 0 :(得分:24)

你应该将这两个插件添加到你的pom。

对于cobertura,请参阅this page

对于findbugs,请参阅this page

-----更新-----

好的,我发现了问题。你似乎依赖于jdom 1.1.2,这取决于jaxen 1.1.3哪个工件被破坏。

您可以尝试使用其他jdom版本,也可以将this site中描述的快照添加到您的pom中。当我在我的电脑上运行你的pom时,为我工作。我复制了快照:

<dependency>
  <groupId>jaxen</groupId>
  <artifactId>jaxen</artifactId>
  <version>1.1.3</version>
  <!-- http://jira.codehaus.org/browse/JAXEN-217 -->
  <exclusions>
    <exclusion>
      <groupId>maven-plugins</groupId>
      <artifactId>maven-cobertura-plugin</artifactId>
    </exclusion>
    <exclusion>
      <groupId>maven-plugins</groupId>
      <artifactId>maven-findbugs-plugin</artifactId>
    </exclusion>
  </exclusions>
</dependency>

答案 1 :(得分:0)

查看本地存储库(normaly in <home>/.m2),其中应包含工件。你会在那里找到<artifactname>.lastUpdated个文件。删除那些并再试一次。

由于网络问题,工件可能无法加载,现在甚至都没有检查过。

答案 2 :(得分:0)

您可以使用Eclipse中的POM编辑器查看依赖关系图。它很快向我展示了jaxen-1.1.3包含旧的maven1依赖项。 Eclipse甚至提供现场排除它们。好的。