Spring & Hibernate Maven 构建

Spring & Hibernate Maven Building

我有一个关于 spring 和 hibernate maven 构建的相对简单的问题。

假设我有项目 A,在设置时的项目配置期间,IDE 已将所有 jar 添加到库中 - 没有 Maven POM。假定此项目中的所有内容都可以正常工作。

现在,以项目 B 为例。该项目将复制项目 A,但将使用 Maven POM 进行配置。

我的问题出现在依赖配置阶段。拍下这张图

为了复制Project A的lib,是否需要我手动逐一查看添加的JAR列表,在MVN Repo中找到相关的maven依赖,然后将它们添加到Project的项目POM中乙?或者是否有 'neater' 方法来使用 maven 构建基本 spring 依赖集。

抱歉,如果这个问题看起来微不足道,我仍处于使用 Maven POM 进行构建的初级阶段。

非常感谢。

这对我来说是一个有趣的问题,但不幸的是没有决定(或者我找不到)。看这个链接:

http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html

http://maven.apache.org/ref/3.0.4/maven-model-builder/

Overriding super POM with a company-wide super/parent POM

恐怕预期的方式确实是为每个依赖项找到 maven 工件。

有一个非常好的网站:http://mvnrepository.com/

否则你确实可以构建一个 "basic spring dependency set" 通过创建一个模块 pom 打包列出你所有的 spring 依赖项并配置你的父项目依赖于这个模块但是没有真正的兴趣去做恕我直言。

模块化是一件很棒的事情(jar hell 例如版本冲突问题是一个多余的 java 应用程序问题,如果你想避免使用 maven 依赖排除,你应该保持最好的粒度)

你是对的,因为目前没有剩余的存储库(据我所知!)有 "all the spring dependencies"。这就是为什么您要为 Spring 版本定义 Maven 属性 并将其用作所有 Spring 依赖项的占位符。

此外,您可能不需要添加所有这些 JAR,因为其中一些 JAR 与另一个一起提供(web 附带 webmvc、iirc)。

示例: 在你的依赖之上(或之下),你可以使用这样的东西:

<properties>
    <spring.version>4.1.5.RELEASE</spring.version>
</properties>

然后,在添加依赖项时,您可以使用以下内容:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>

您可以使用spring-framework-bom 如下:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>4.0.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
    </dependency>

    ...
<dependencies>

或者你可以用 spring 版本声明一个 pom 属性:

<properties>
    <spring-version>4.0.1.RELEASE</spring-version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring-version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring-version}</version>
    </dependency>

    ...
<dependencies>

您可以在此处找到最常见的依赖项: http://spring.io/blog/2009/12/02/obtaining-spring-3-artifacts-with-maven/