2016-09-28 10 views
0

に引っ張ります。私は画像などのようないくつかのカスタムインクルーシブで戦争ファイルを作成するプロジェクトを持っています。これまでのところよく見えます。残っている唯一の問題は、gradleがソースjar/zipsとjavadoc jar/zipを私のWEB-INF/lib /フォルダにプルすることです。Gradleの戦争プラグインは、私は奇妙な問題を抱えているのjavadocとソース

私はそれはアイデアと問題ではなく、コマンドラインと同じ結果かもしれないと思いました。私はそれが依存関係の設定と関係があると思いますか? 私はコンパイルと実行時のスコープを使用し、私のアーティファクトはArtifactoryから解決されます。

誰もがそれを修正する方向に私を指すことができますか?

更新:

私はタスクを作成する場合:

task copyAllDependencies(type: Copy) { 
    from configurations.runtime 
    into 'allRuntime' 
} 

または

task copyAllDependencies(type: Copy) { 
    from configurations.compile 
    into 'allCompile' 
} 

を私もソースを取得します。だから、それはコンパイル/実行時の設定と関係があるようです。彼らはソースとjavadocを引き出しています。しかし、なぜ?!

依存関係をこのように宣言されています。我々はコメントで発見したよう

dependencies { 
    compile   group: 'org.drools',     name: 'drools-core',   version: DROOLS_VERSION 
    compile   group: 'org.drools',     name: 'drools-compiler',  version: DROOLS_VERSION 
    ... 

    runtime   group: 'net.sourceforge.barbecue',  name: 'barbecue',    version: '1.5-beta1', ext: 'jar' 
    ... 

    testCompile  group: 'org.fitnesse',  name: 'fitnesse',       version: '20130531' 
    ... 
} 
+0

どのように依存関係を宣言しているに働くかもしれませんか? –

+0

私はリポジトリを定義するスクリプトを最小限に抑え、javaとwarプラグインをインクルードし、依存関係を定義しました。それでも同じですか? – Joschi

+0

コマンドラインから 'gradle:mywarproject:dependencies'を試してください。 'javadoc'と' sources'の依存関係はリストされていますか? –

答えて

0

を微調整する必要があるかもしれませんここで別の試み...少しハックだけど

configurations { 
    tempCompile 
    tempRuntime 
    tempTestCompile  
} 

dependencies { 
    tempCompile "org.drools:drools-core:${DROOLS_VERSION}" 
    tempRuntime "net.sourceforge.barbecue:barbecue:[email protected]" 
    tempTestCompile "org.fitnesse:fitnesse:20130531" 
    ... 

    compile configurations.tempCompile.asFileTree.matching { 
     exclude '**/*-sources.jar' 
     exclude '**/*-javadoc.jar' 
    } 
    runtime configurations.tempRuntime.asFileTree.matching { 
     exclude '**/*-sources.jar' 
     exclude '**/*-javadoc.jar' 
    } 
    testCompile configurations.tempTestCompile.asFileTree.matching { 
     exclude '**/*-sources.jar' 
     exclude '**/*-javadoc.jar' 
    } 
} 
+0

これは動作します! :) よかった。ありがとう!私は既にMavenスタイルのリポジトリに切り替えました。今、私の瓶が2〜3回挿入されるという問題があります。しかし、それは別の問題です。すべての答えをありがとう! :) – Joschi

+0

私はコピーと貼り付けのエラーがありました。今はすべてが必要に応じて動作します。もう一度ありがとうございます!あなたは私の日を救った:) – Joschi

0

、あなたの依存関係は推移的依存関係としてのJavadocやソースにもたらしています。セレクタ(クラシファイア:「javadocツール」など)はので、私はツタのユーザーではないよ:あなたはおそらく注

configurations.all { Configuration config -> 
    ['com.group1', 'com.group2', ..., 'com.groupN'].each { groupId -> 
     config.exclude [group: groupId, classifier: 'javadoc'] 
     config.exclude [group: groupId, classifier: 'sources'] 
    } 
} 

することにより、これらを除外することができ

+0

ちょっとランス提案のありがとう。私も同様のことを考えていたが、残念ながらそれはうまくいかなかった。 「依存関係の除外ルールには、指定された「グループ」および/または「モジュール」が必要です。たとえば、[グループ: 'com.google.collections']」と表示されます。私はgradle 3.1を使用しています。多分 "クラシファイア"は許可されていますか? – Joschi

+0

うーん...グループをワイルドカードにすることはできません。グループID年代(これらのうまくいけば、あまりにも多くはない?) –

+0

は、私がここでの問題は、GradleのがここDefaultExcludeRuleを使用していることだと思うハードコードに更新しました。そのルールはプロパティとして "group"と "module"しか持たないので、 "classifier"を指定することはできません。DependencyResolveDetailsの助けを借りてそれを管理しようとしましたが、それもうまくいきませんでした。それを行うことがとても難しいと信じることは難しいです:D – Joschi

関連する問題