我必须在我的pom.xml
中逐一定义每个弹簧库,还是有一些多件装?
我发现,例如,当我让maven下载spring-core时,它还下载了spring-asm。
是否有更多此类包或类似的快捷方式....?
答案 0 :(得分:5)
此处可能存在重复:Maven - include all submodules of a pom as dependencies in another module
简短的回答是否定的。即使你能做到这一点也不是一个好主意。
Spring过去常常提供捆绑groupId=org.springframework artifactId=spring
和groupId=org.springframework artifactId=spring-all
。由于各种原因(我找不到链接)Spring决定这是一个不好的做法,我倾向于同意。
最好的办法是,如果你真的想要包含所有的spring子模块,那就是使用父poms和一个属性来表示版本......例如:
<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>
<groupId>com.snaphop</groupId>
<artifactId>snaphop-parent</artifactId>
<version>0.0.53-SNAPSHOT</version>
<name>snaphop-parent</name>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.6</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.1.0.RELEASE</spring.version>
</properties>
..skip some lines
<dependencyManagement>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
你必须在这里阅读有关父母的信息:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance_vs_Project_Aggregation(或只是谷歌)。
另一个选择是制作具有所有弹簧依赖关系的虚拟项目,并依赖于此。
话虽如此,我建议您明确选择您的家属,因为它可以真正帮助您将来模块化/解耦/重构您的项目。