使用maven下载每个Spring库

时间:2012-09-07 15:20:16

标签: java spring maven

我必须在我的pom.xml中逐一定义每个弹簧库,还是有一些多件装?

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

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

1 个答案:

答案 0 :(得分:5)

此处可能存在重复:Maven - include all submodules of a pom as dependencies in another module

简短的回答是否定的。即使你能做到这一点也不是一个好主意。

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>

         

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

另一个选择是制作具有所有弹簧依赖关系的虚拟项目,并依赖于此。

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