如何让Eclipse和Maven下载我需要的JAR?

时间:2012-06-01 14:31:00

标签: java eclipse dependencies maven-3

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

我认为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>

但我得到的只是:

项目构建错误:&#39; dependencies.dependency.version&#39;对于javax.annotation:com.springsource.javax.annotation:jar缺失。

...

我做错了什么?

5 个答案:

答案 0 :(得分:6)

依赖块几乎总是需要版本号。如果您在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>

答案 1 :(得分:2)

您需要指定依赖项的版本,如下所示:

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

答案 2 :(得分:1)

因为错误表示pom中的依赖项缺少依赖项的version属性。

注意在这个例子中如何安排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>

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

答案 3 :(得分:1)

正如错误消息所指出的那样,您错过了所有<version>元素的<dependency>子元素。

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

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

答案 4 :(得分:1)

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

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