将Spring Boot应用程序用作gradle的依赖项

时间:2019-02-07 23:04:31

标签: java spring spring-boot gradle

使用spring boot(2.1)应用程序作为其他spring boot应用程序的依赖项时遇到了麻烦。

我知道这不是推荐的方法,但是出于简单原因,我想走这条路。官方documentation仅显示了如何使用Maven进行操作,而不是如何使用Gradle进行操作。

项目A:

plugins {
    id "org.springframework.boot" version "2.1.1.RELEASE"
}

apply plugin: 'io.spring.dependency-management'

项目B:

plugins {
    id "org.springframework.boot" version "2.1.1.RELEASE"
}

apply plugin: 'io.spring.dependency-management'

dependencies {
    compile project(':Project A')
}

但是,这导致尽管执行了项目b,但项目A的application.properties(来自资源)仍在加载。

有人建议或可以指导我使用一个简单的示例吗?

更新:

通过添加以下内容,可以在构建最终的弹簧靴子罐子时起作用。不幸的是,当尝试直接在Intellij中执行该问题时,问题仍然存在。

jar {
  enabled= true
    exclude("**/application.properties")
}

1 个答案:

答案 0 :(得分:0)

我假设ProjectB依赖ProjectA,因为您需要一些通用功能或服务?也许您应该首先从ProjectA中提取一些通用模块。例如

ProjectA-common
ProjectA-app  (runnable application with application.properties)

然后,您可以在application.properties中将ProjectA-common导入为库,而无需任何麻烦。

如果仍然必须包括所有ProjectA,则可以从适当性排除特定配置。并写一个新的来覆盖它。

spring:
  profiles: dev
  autoconfigure:
    exclude:
       - com.example.config.ProjectAConfiguration
       - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration