为什么Spring在两套不同的工件下发布?

时间:2012-03-16 05:45:07

标签: spring maven

为什么Spring是在两个工件名称系统下发布的?

例如,弹簧芯(通常是?)用作

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.1.1.RELEASE</version>
</dependency>

(见:http://mvnrepository.com/artifact/org.springframework/spring-core/3.1.1.RELEASE

但也发布为

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>org.springframework.core</artifactId>
    <version>3.1.1.RELEASE</version>
</dependency>

(见:http://ebr.springsource.com/repository/app/bundle/version/detail?name=org.springframework.core&version=3.1.1.RELEASE

问题:

  1. 为什么他们发布相同的(?)jar作为两个不同的工件?

  2. 我应该使用哪一个?

  3. 为什么我可以找到maven中央存储库中的第一个jar,而不是第二个jar?我可以在哪个存储库中找到第二个jar?

2 个答案:

答案 0 :(得分:3)

第一个是标准包装,第二个是符合OSGI的版本。

答案 1 :(得分:1)

在SpringSource博客上查看Obtaining Spring 3 Artifacts with Maven。它应该回答你的所有问题:

  

通常,Spring会将其工件发布到两个不同的位置:

     
      
  1. Maven Central,这是Maven查询的默认存储库,不需要任何特殊配置即可使用

  2.   
  3. The Enterprise Bundle Repository(EBR),由SpringSource运行,并托管所有与Spring集成的库

  4.         

    因此,在使用Maven获取Spring时,您需要决定的第一件事就是从哪个地方获取它。通常,如果您关心OSGi,请使用EBR,因为它包含所有Spring依赖项的OSGi兼容工件,例如Hibernate和Freemarker。如果OSGi对你没关系,那么这两个地方都有效,尽管它们之间有一些利弊。一般来说,为您的项目挑选一个地方或另一个地方;不要混合它们。这一点尤为重要,因为EBR工件使用的命名约定与Maven Central工件不同。

         

    ......