使用maven下载每个Spring库

Jaa*_*nus 4 java spring maven

我必须一个接一个地定义每一个弹簧库pom.xml,还是有一些多件装?

我发现,例如,当我让maven下载spring-core时,它还下载了spring-asm.

是否有更多这样的包或类似的快捷方式......?

Ada*_*ent 5

这里有一个可能的重复:Maven - 包括pom的所有子模块作为另一个模块中的依赖项

最简洁的答案是不.即使你能做到这一点也不是一个好主意.

Spring曾经提供捆绑groupId=org.springframework artifactId=springgroupId=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>
Run Code Online (Sandbox Code Playgroud)

你必须在这里阅读有关父母的信息:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance_vs_Project_Aggregation(或只是谷歌).

另一个选择是使用所有spring依赖项创建自己的虚拟项目并依赖于此.

话虽如此,我真的建议您明确选择您的家属,因为它可以真正帮助您将来模块化/解耦/重构您的项目.