2016-01-13 233 views
0

我使用Spring框架(家庭项目)工作,并具有相同项目(分支)的两个主要版本。分析不同分支的maven依赖关系

  • 第一个是'纯'弹簧框架,在pom中使用手动配置的软件包依赖关系。
  • 第二个是Spring引导,由于Spring引导自动化(关于依赖关系),它在pom中的依赖关系略有不同。

问题:有没有办法有一个文件(类似于配置文件的东西)内的这两个不同的POM的依赖?还是有另一个更好的解决方案来保持这两种配置?

+0

如果您有两个分支,然后保留每个分支的特定依存列表,然后在开发完成后将分支合并到主干。如果这些实际上是两个独立的项目,那么你可以考虑定义一个共同的父Maven POM,它拥有共享的属性和依赖关系。 – emeraldjava

+0

关键是这些分支应该有相同的代码。不同的是spring引导中只有一些java配置类,并且在pom中有依赖关系。我希望有这些分离的分支机构,以防需要其中一个分支机构。应用程序中的代码应该合并到它们两个中。我认为我会从这些分支之一做出补丁。 – kropla

+0

你说,类似于配置文件,但你为什么不使用该配置文件@ kropla? – g00glen00b

回答

1

你可以使用Maven的配置文件有单独的插件或依赖特定的Maven配置文件,例如:

<profiles> 
    <profile> 
     <id>profile-1</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <dependencies> 
      <dependency> 
       <groupId>com.example.xyz</groupId> 
       <artifactId>library-1</artifactId> 
       <version>1.0.0</version> 
      </dependency> 
     </dependencies> 
    </profile> 
    <profile> 
     <id>profile-2</id> 
     <dependencies> 
      <dependency> 
       <groupId>com.example.xyz</groupId> 
       <artifactId>library-2</artifactId> 
       <version>1.0.0</version> 
      </dependency> 
      <dependency> 
       <groupId>com.example.xyz</groupId> 
       <artifactId>library-3</artifactId> 
       <version>1.0.0</version> 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

在这种情况下,如果你使用-P profile-1同时建设这将增加库1。与-P profile-2它将包括库-2和库-3。


尽管您的用例对我来说并不完全清楚,但听起来并不像这是一个项目。我的意思是,如果你有一个项目,对于我来说似乎很奇怪你正在切换Spring引导/非Spring引导。

如果您有多个需要相同类的项目,您可以始终创建一个包含这些类的单独模块。然后你可以使用:

@ComponentScan(basePackages = "com.example.common.library") 

现在你的共享类将被你的Spring启动项目和非Spring启动项目使用。


如果你想出去春天开机就特定项目或你从香草春转换为春天开机,那么你应该使用VCS(如Git)来处理,创建一个新的分支开发您的Spring启动应用程序并在完成后将其合并到主分支中。