Grails排除不在更深层次上工作

时间:2012-06-08 10:41:58

标签: grails

我正在使用Grails 2.0.3。在BuildConfig.groovy中,我有以下排除。

dependencies {
    runtime ('com.mycompany.apps.notification:client:1.2.1') {
        excludes([ group: 'xom', name: 'xom' ])
    }
}

我的依赖树如下所示。(使用maven2创建树)

[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.mycompany.apps.notification:notifytest:jar:0.0.1-SNAPSHOT
[INFO] \- com.mycompany.apps.notification:client:jar:1.2.1:compile
[INFO]    \- com.mycompany.apps.notification:api:jar:1.2.1:compile
[INFO]       \- com.mycompany.framework:platformservice.shared:jar:3.22.0:compile
[INFO]          \- com.mycompany.framework:saml.res:jar:1.0.0:compile
[INFO]             \- xom:xom:jar:1.1:compile
[INFO]                +- xerces:xmlParserAPIs:jar:2.6.2:compile
[INFO]                \- jaxen:jaxen:jar:1.1-beta-8:compile
[INFO]                   \- (xerces:xmlParserAPIs:jar:2.6.2:compile - omitted for duplicate)
[INFO] ------------------------------------------------------------------------

排除工作正常,直到树中的第4级,但排除在级别之下被忽略。在我的示例中,排除工作直到'com.mycompany.framework:platformservice.shared',但不在'com.mycompany.framework:saml.res'及以下工作。

我使用maven 2.2尝试了相同的操作,并且排除在上面树的所有级别中都有效。我是否错过了grails中的一些配置以排除在更深层次的工作?或者这是一个已知问题?

1 个答案:

答案 0 :(得分:0)

我遇到类似的问题...让我疯狂。有几个jira问题可以解决grails中的依赖问题,希望它们能在2.3中得到解决。无论如何,为了解决您的问题,我通常会排除更高的依赖关系,然后直接包含它,然后排除我实际上试图从中排除的项目。很烦人,但它确实有效。

所以也许这样的事情?

runtime ('com.mycompany.apps.notification:client:1.2.1') {
    excludes([ group: 'com.mycompany.framework', name: 'saml' ])
}


runtime ('com.mycompany.framework:saml.res:1.0.0') {
    excludes([ group: 'xom', name: 'xom' ])
}

有时一般情况下依赖性东西变得棘手,我发现grails --refresh-dependencies compile可以解决这个问题。或者,更糟糕的是删除整个.grails目录。