不确定这是Gradle问题还是Spring Boot问题,但这里有......
我在Spring启动应用程序中使用Spring安全性和LDAP。
我的build.gradle中有以下依赖项:
compile 'org.springframework.security:spring-security-ldap:3.2.4.RELEASE'
compile 'org.apache.directory.server:apacheds-server-jndi:1.5.5'
其中第二个提供了只在开发过程中需要的嵌入式LDAP服务器。
我已经建立了一个SB @Profile,并在具有@Profile(' development')注释的类中将LDIF文件配置/加载到嵌入式服务器中。
问题是:如何在不处于开发模式时删除第二个依赖项?
我在config / application.yml文件中建立了spring.profiles.active属性,因此:
spring:
profiles:
active: development
我可以引用spring.profiles.active以便以某种方式排除不需要的依赖项吗?
答案 0 :(得分:1)
对于子孙后代,我最终做了什么......
在我的build.grade文件的顶部:
def readActiveProfile() {
final config = new org.yaml.snakeyaml.Yaml().loadAll(new File('config/application.yml').newReader())
final defaultPart = config?.take(1)
defaultPart?.spring?.profiles?.active
}
final activeProfile = readActiveProfile() ?: ['development']
这将读取我保留外部化设置的配置文件(其中一个是定义活动配置文件的设置)。
然后,在依赖项部分:
compile 'org.springframework.security:spring-security-ldap:3.2.4.RELEASE'
if( ! ('production' in activeProfile))
compile 'org.apache.directory.server:apacheds-server-jndi:1.5.5'
这对我的目的来说足够好,但感觉不是很正确;我假设会有一个更惯用的" Gradle方式"这样做。