0
我使用Spring框架(家庭项目)工作,并具有相同项目(分支)的两个主要版本。分析不同分支的maven依赖关系
- 第一个是'纯'弹簧框架,在pom中使用手动配置的软件包依赖关系。
- 第二个是Spring引导,由于Spring引导自动化(关于依赖关系),它在pom中的依赖关系略有不同。
问题:有没有办法有一个文件(类似于配置文件的东西)内的这两个不同的POM的依赖?还是有另一个更好的解决方案来保持这两种配置?
我使用Spring框架(家庭项目)工作,并具有相同项目(分支)的两个主要版本。分析不同分支的maven依赖关系
问题:有没有办法有一个文件(类似于配置文件的东西)内的这两个不同的POM的依赖?还是有另一个更好的解决方案来保持这两种配置?
你可以使用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启动应用程序并在完成后将其合并到主分支中。
如果您有两个分支,然后保留每个分支的特定依存列表,然后在开发完成后将分支合并到主干。如果这些实际上是两个独立的项目,那么你可以考虑定义一个共同的父Maven POM,它拥有共享的属性和依赖关系。 – emeraldjava
关键是这些分支应该有相同的代码。不同的是spring引导中只有一些java配置类,并且在pom中有依赖关系。我希望有这些分离的分支机构,以防需要其中一个分支机构。应用程序中的代码应该合并到它们两个中。我认为我会从这些分支之一做出补丁。 – kropla
你说,类似于配置文件,但你为什么不使用该配置文件@ kropla? – g00glen00b