2013-11-21 10 views
6

में स्थानीय फ़ाइल में स्रोत और जावाडोक संलग्न करें मैं gradle (v1.9) और IntelliJIdea (v12.1.6) का उपयोग कर रहा हूं। मेरे पास एक साधारण जावा परियोजना है और build.gradle फ़ाइल है। एक निर्भरता मेवेन केंद्रीय पर नहीं है, इसलिए मैंने जार को lib फ़ोल्डर में रखा है।Gradle: IntelliJIdea

समस्या

निर्भरता कि Maven केंद्रीय पर हैं के लिए, Gradle correcly जावाडोक और स्रोत ($ परियोजना/.idea/पुस्तकालयों में स्थित) के साथ पुस्तकालय एक्सएमएल फ़ाइलें बनाता है। स्थानीय निर्भरता (जेनेटिव हुक) के लिए, ऐसा कोई स्रोत या जावाडोक संलग्न नहीं है।

स्रोत और जावाडोक लगाव के साथ

<component name="libraryTable"> 
    <library name="jackson-core-2.2.3"> 
    <CLASSES> 
     <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.2.3/1a0113da2cab5f4c216b4e5e7c1dbfaa67087e14/jackson-core-2.2.3.jar!/" /> 
    </CLASSES> 
    <JAVADOC> 
     <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.2.3/6021971970a43ae0c22f378cfb5813af869caab/jackson-core-2.2.3-javadoc.jar!/" /> 
    </JAVADOC> 
    <SOURCES> 
     <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.2.3/b1c4a6c3c26dfc425efd53c00217868b60d07de9/jackson-core-2.2.3-sources.jar!/" /> 
    </SOURCES> 
    </library> 
</component> 

स्रोत और जावाडोक लगाव

<component name="libraryTable"> 
    <library name="JNativeHook-1.1.4"> 
    <CLASSES> 
     <root url="jar://$PROJECT_DIR$/lib/JNativeHook-1.1.4.jar!/" /> 
    </CLASSES> 
    <JAVADOC /> 
    <SOURCES /> 
    </library> 
</component> 

अतिरिक्त जानकारी

निर्माण फ़ाइल के बिना: एक तुलना, दो xml फ़ाइलें के रूप में ऐसा लगता है:

apply plugin: 'java' 
apply plugin: 'idea' 
idea { 
    module { 
     downloadJavadoc = true 
     downloadSources = true 
    } 
} 

repositories { 
    mavenCentral() 
    flatDir(dirs: 'lib') 
} 

dependencies { 
    // Will be fetched from mavenCentral() 
    compile 'com.fasterxml.jackson.core:jackson-core:2.2.3' 
    // Will be fetched from the 'lib' directory (see second repository) 
    compile 'org.jnativehook:JNativeHook:1.1.4' 
} 

sourceCompatibility = 1.7 
version = '0.1' 
jar { 
    manifest { 
     attributes 'Implementation-Title': 'ScreenShotter', 
        'Implementation-Version': version, 
        'Main-Class': 'de.fau.screenshotter.ScreenShotter' 
    } 
    from { 
     configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
    } 
} 

मेरे परियोजना संरचना इस तरह दिखता है:

प्रश्न (tldr;)

मैं कैसे उचित जावाडोक और स्रोत प्रविष्टियों बना सकते हैं और एक्सएमएल में जोड़ने के लिए Gradle बता सकते हैं इंटेलिजे का उपयोग करने वाली फाइलें?

+0

भी एक ही समस्या का सामना करना पड़ रहा है, लेकिन ग्रहण के साथ intelliJ के बजाय ग्रहण फ़ाइल। – icyitscold

उत्तर

0

यदि आपके पास बाइनरी रिपोजिटरी मैनेजर है, तो हर तरह से मॉड्यूल प्रकाशित करें, जो तुरंत समस्या हल करता है। अन्यथा, आपको idea.module को ठीक से ट्यून करना होगा, या तो idea.module.iml.whenMerged हुक का उपयोग करके, या idea.module.iml.withXml हुक का उपयोग करना होगा। इसके लिए थोड़ा कोडिंग की आवश्यकता होगी, और मेरे पास समाधान तैयार नहीं है। एपीआई विवरण के लिए, ग्रैडल बिल्ड भाषा संदर्भ में IdeaModule देखें।