建造时包含在战争中的未知插件

时间:2013-01-29 10:41:17

标签: grails grails-plugin

我注意到每次构建时插件“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"
    }       
}

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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
   }
}