我有一个在多个生产环境中运行的应用程序。在一种环境中,我们希望使用LDAP进行身份验证,而在另一种环境则不希望。如果BuildConfig.groovy中包含Spring Security LDAP插件,则非LDAP环境无法进行身份验证,因为未配置LDAP。
我试过
environments {
devldap {
plugins {
compile ":spring-security-ldap:2.0-RC2"
}
}
}
但是LDAP插件仍然使用非LDAP环境构建,并且如果我不包括LDAP配置,则会导致非LDAP环境(在本例中为development
)无法进行身份验证,因为它无法连接到LDAP。
我试过
grails clean
grails refresh-dependencies
但是LDAP插件只有在我完全注释掉的情况下才会卸载。
如何在构建中有条件地包含/排除插件?
我觉得这个问题现在有点老了,但我对Melody插件也做了类似的事情。在测试期间安装这个没有任何价值,而且可能会成为障碍,所以我做了以下操作:
plugins {
// other plugins ...
if( Environment.current != Environment.TEST )
compile ":grails-melody:1.56.0"
// other plugins ...
}
所以当我运行"测试应用程序"时,我会看到插件被"卸载",然后当我运行应用程序时,我看到它被安装并可用。
注意:我最近忘记做import grails.util.Environment
。如果你这样做,你会发现Environment.current == [:]
和Environment.TEST
等。我相信这是由于配置文件后面的构建器造成的。