2012-06-01 27 views
3

我是Maven和Eclipse的新手。我们一直在使用Netbeans并在我们的项目中手动安装jar。如何获取Eclipse和Maven以下载我需要的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> 

但我得到的是:

项目生成错误:“dependencies.dependency .version'为javax.annotation:com.springsource.javax.annotation:缺少jar。

....

我在做什么错?

回答

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> 
+0

啊!谢谢!说得通。 – cbmeeks

+0

如果这对您有用,请将其标记为答案,以便其他人可以从中受益。 – mawcsco

+0

几个人如此快地提供了基本相同的答案!但是,第一个答案就是mawcsco。感谢大家! – cbmeeks

2

你需要指定依赖的版本,像这样:

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

由于错误说版本attri pom中的依赖关系条目缺少依赖关系的bute。

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

可以被硬编码或者可以被添加作为一个属性,以及。 希望这可以帮助

+0

+1给我看$ {spring.version} – cbmeeks

1

由于错误消息指出,您错过了所有<dependency>元素的<version>子元素。

如果你浏览你的依赖上http://mvnrepository.com,它应该很容易找到一个例子<dependency>元素,你可以粘贴到您的POM文件,如:

<dependency> 
    <groupId>springframework</groupId> 
    <artifactId>spring-orm</artifactId> 
    <version>1.2.6</version> 
</dependency> 
相关问题