【问题标题】:How do I get Eclipse and Maven to download the JARs I need?如何让 Eclipse 和 Maven 下载我需要的 JAR?
【发布时间】:2012-06-06 19:23:02
【问题描述】:

我是 Maven 和 Eclipse 的新手。我们一直在使用 Netbeans 并在我们的项目中手动安装 jars。

我认为 Maven 的目的是根据您的依赖项下载所需的 jar?

在一个新项目中,我在 pom.xml 文件的 dependencies 节点下添加了以下内容:

    <!-- Java dependencies -->
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>com.springsource.javax.annotation</artifactId>
    </dependency>

    <!-- Spring dependencies -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>org.springframework.orm</artifactId>
    </dependency>

    <!-- Spring Security dependencies -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>org.springframework.security.config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>org.springframework.security.core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>org.springframework.security.taglibs</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>org.springframework.security.web</artifactId>
    </dependency>

    <!-- Other dependencies -->
    <dependency>
        <groupId>com.mysql.jdbc</groupId>
        <artifactId>com.springsource.com.mysql.jdbc</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>com.springsource.org.apache.commons.dbcp</artifactId>
        <scope>runtime</scope>
    </dependency>

但我得到的只是:

项目构建错误:javax.annotation:com.springsource.javax.annotation:jar 的“dependencies.dependency.version”缺失。

....

我做错了什么?

【问题讨论】:

    标签: java eclipse dependencies maven-3


    【解决方案1】:

    依赖块几乎总是需要一个版本号。如果您在 http://search.maven.org/ 上搜索您的依赖项,您应该能够导航到包含完整依赖项块的有关依赖项的页面。

    例如,Spring Security 的页面是:

    http://search.maven.org/#artifactdetails|org.springframework.security|spring-security-aspects|3.1.0.RELEASE|jar

    它的依赖块如下所示:

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-aspects</artifactId>
        <version>3.1.0.RELEASE</version>
    </dependency>
    

    【讨论】:

    • 如果这对您有用,请将其标记为答案,以便其他人可以从中受益。
    • 几个人这么快就给出了基本相同的答案!但答案是 mawcsco 是第一个。谢谢大家!
    【解决方案2】:

    您需要像这样指定依赖项的版本:

    <dependency> 
         <groupId>javax.annotation</groupId>       
         <artifactId>com.springsource.javax.annotation</artifactId>  
         <version>1.0.0</version>     
    </dependency>
    

    【讨论】:

      【解决方案3】:

      正如错误所说,pom 中的依赖项条目缺少依赖项的版本属性。

      注意这个例子中 pom 的排列方式。 http://www.mkyong.com/spring-security/spring-security-hello-world-example/

          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>${spring.version}</version>
          </dependency>
      

      可以是硬编码的,也可以作为属性添加。 希望这会有所帮助

      【讨论】:

        【解决方案4】:

        正如错误消息指出的那样,您的所有&lt;dependency&gt; 元素都缺少&lt;version&gt; 子元素。

        如果您浏览 http://mvnrepository.com 上的依赖项,应该很容易找到可以粘贴到 POM 文件中的示例 &lt;dependency&gt; 元素,如下所示:

        <dependency>
            <groupId>springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>1.2.6</version>
        </dependency>
        

        【讨论】:

          【解决方案5】:

          除了 groupId 和 artifactId 之外,您还需要提供更多详细信息才能将依赖项添加到 pom.xml 文件。

          请查看此参考以了解如何将依赖项添加到 pom.xml 文件 - http://maven.apache.org/pom.html#Dependencies

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-01-11
            • 2012-04-08
            • 2014-06-18
            • 2016-06-17
            • 1970-01-01
            • 1970-01-01
            • 2011-07-27
            • 1970-01-01
            相关资源
            最近更新 更多