0

我注意到每次构建时插件“svn-1.0.0.M1”都会被拉入我的战争。
我没有在我的 buildConfig 或 application.properties 中定义它。

有人可以解释为什么会这样吗?它是我的其他插件之一的依赖项吗?

我正在使用 grails 2.1.0。

repositories {
    inherits true // Whether to inherit repository definitions from plugins

    grailsPlugins()
    grailsHome()
    grailsCentral()
    mavenCentral()
    mavenLocal()

    mavenRepo "http://snapshots.repository.codehaus.org"
    mavenRepo "http://repository.codehaus.org"
}
dependencies {
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
    runtime 'mysql:mysql-connector-java:5.1.20'
    runtime 'hsqldb:hsqldb:1.8.0.10'
}
plugins {
    build   ":tomcat:$grailsVersion", ":jbossas:1.0"
    runtime ":hibernate:$grailsVersion"
    compile ":spring-security-core:1.2.7.3",":geoip:0.2",":pretty-time:0.3",":profiler:0.4",":quartz:0.4.2"

    // Add plugins that MUST NOT go into production here
    if (Environment.current != Environment.PRODUCTION) {
        runtime ":build-test-data:2.0.3",":fixtures:1.1",":grails-melody:1.12"
    }       
}

谢谢

4

2 回答 2

2

您可以在命令行上调用 grails 命令grails dependency-report查看所有依赖项。

于 2013-01-29T10:55:46.390 回答
0

这来自 grails-melody 和 fixtures 插件。正如 Ian 在他的评论中所说,有一个 Grails 错误,其中标记为的插件依赖项exported = false被正确排除,但它的依赖插件没有。旧版本的发布插件依赖于 svn 插件,而新版本依赖于 rest-client-builder 插件,因此这些可能会泄漏到包含的应用程序中。

插件开发人员的解决方法是显式依赖发布插件的依赖项并排除它们:

plugins {
   build(':release:2.2.0', ':rest-client-builder:1.0.3') {
      export = false
   }
}

而不仅仅是

plugins {
   build(':release:2.2.0') {
      export = false
   }
}
于 2013-01-29T16:06:40.583 回答