我是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缺失。
...
我做错了什么?
答案 0 :(得分:6)
依赖块几乎总是需要版本号。如果您在http://search.maven.org/上搜索依赖项,则应该能够使用完整的依赖项块导航到有关依赖项的页面。
例如,Spring Security的页面是:
它的依赖块看起来像:
<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