2015-11-04 9 views
5

नहीं होनी चाहिए, मैं एक वसा जार रखना चाहता हूं लेकिन प्रदान की गई निर्भरताओं के बिना। तो मैं निम्नलिखित दो प्लग इन का उपयोग:ग्रेडल छाया प्लगइन पैकेज भी सभी "प्रदत्त" निर्भरताएं जो

और इस तरह एक build.gradle फ़ाइल है:

apply plugin: 'nebula.provided-base' 
apply plugin: 'com.github.johnrengelman.shadow' 

archivesBaseName = 'range-cache-drivers' 
group = 'com.engine' 
version = '0.302-SNAPSHOT' 

buildDir = 'target' 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 


dependencies { 
    provided project(':rangeCache') 

    // CSV, TSV, Fixe width 
    compile deps.univocityParsers 
    // MongoDB 
    compile deps.mongo 
    // Cassandra 
    compile deps.cassandradx 
    compile deps.cassandraSnappy 
    compile deps.cassandraLZ4 
} 

लेकिन मैं अभी भी है जब मैं gradle shadowJar चलाने मेरी वसा जार में सभी रेंज कैश कक्षाएं। मैं अपनी वसा जार से प्रदान की गई निर्भरताओं को कैसे बहिष्कृत कर सकता हूं?

संपादित करें 1: ऐसा लगता है कि काम नहीं करना है, क्षणिक निर्भरता अभी भी वसा जार में कॉपी हो रही है।

shadowJar { 
    dependencies { 
     exclude(project(':rangeCache')) 
    } 
} 

संपादित करें 2:

configurations { 
    shadow 
    compile.extendsFrom provided 
    provided.extendsFrom shadow 
} 

dependencies { 
    provided project(':rangeCache') 

    // CSV, TSV, Fixe width 
    shadow deps.univocityParsers 

    // MongoDB 
    shadow deps.mongo 

    // Cassandra 
    shadow deps.cassandradx 
    shadow deps.cassandraSnappy 
    shadow deps.cassandraLZ4 

    testCompile deps.junit 
} 

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar 

task fatJar(type: ShadowJar) { 
    configurations = [project.configurations.shadow] 
    from(project.sourceSets.main.output) 
} 

उत्तर

0

छाया जार निर्भरता हटाने के बारे में this article पर एक नज़र डालें: स्टानिस्लाव के जवाब के आधार पर मैं ठीक से काम कराने के लिए निम्नलिखित किया था।

संक्षेप में, इस आलेख के मुताबिक, shadowJar की निर्भरताओं के माध्यम से कुछ निर्भरता को छोड़कर इसकी निर्भरता निर्भर है, जैसा कि आपने पहले ही उल्लेख किया है।

configurations {  
    runtime.exclude %what you need to exclude% 
} 

आशा है, यह मददगार हो सकता है: समाधान कैसे करना है, जैसे, क्रम विन्यास को संशोधित करने के लिए, यह से कुछ निर्भरता को छोड़ने के लिए है।

+1

यह धन परियोजनाओं के साथ काम नहीं करता है। हालांकि मैं लिंक किए गए ब्लॉग पोस्ट में समाधान संख्या 3 के लिए गया था जो काफी अच्छी तरह से काम कर रहा है – KIC

संबंधित मुद्दे