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 に答える