我必须在我的 中一个一个地定义每个弹簧库pom.xml
,还是有某种合装包?
我发现,比如我让maven下载spring-core的时候,它也下载了spring-asm。
是否有更多这样的包或类似的快捷方式......?
这里可能有重复:Maven - 将 pom 的所有子模块作为依赖项包含在另一个模块中
最简洁的答案是不。长答案是,即使你可以,这也不是一个好主意。
Spring 曾经提供捆绑groupId=org.springframework artifactId=spring
和groupId=org.springframework artifactId=spring-all
. 由于各种原因(我找不到链接),Spring 认为这是一种不好的做法,我倾向于同意。
最好的办法是,如果你真的想包含所有的 spring 子模块是使用父 pom 和一个属性来表示版本......例如:
<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>
您必须在此处阅读有关父 pom 的信息:http ://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance_vs_Project_Aggregation (或只是谷歌)。
另一种选择是使用所有弹簧依赖项制作您自己的虚拟项目并依赖它。
话虽如此,我真的建议您明确选择您的依赖项,因为它确实可以帮助您将来模块化/解耦/重构您的项目。