2012-09-15 36 views
5

से आर्टिफैक्टरी को कॉन्फ़िगर नहीं किया जा सकता है, मैं धीरे-धीरे बढ़ने के लिए नया हूं और इससे अपनी आर्टिफैक्टरी रेपॉजिटरी एक्सेस करना चाहता हूं। यदि मैं सभी कॉन्फ़िगरेशन को एक बिल्ड स्क्रिप्ट में डालता हूं, तो बिल्ड सफल होता है। यहाँ मेरी build.gradle के प्रासंगिक भागों हैं:ग्रेड: बाहरी निर्माण स्क्रिप्ट

allprojects { 
    apply plugin: 'java' 
    apply plugin: 'eclipse' 
    apply plugin: 'artifactory' 
} 

// ... 

buildscript { 
    repositories { 
     maven { 
      url 'http://repo.jfrog.org/artifactory/gradle-plugins' 
     } 

     maven { 
      url artifactory_contextUrl + 'plugins-release' 

      credentials { 
       username = artifactory_user 
       password = artifactory_password 
      } 
     } 
    } 

    dependencies { 
     classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.0.16') 
    } 
} 


artifactory { 
    contextUrl = artifactory_contextUrl 

    publish { 
     repository { 
      repoKey = 'libs-release-local' 
      username = artifactory_user 
      password = artifactory_password 
      maven = true 
     } 
    } 

    resolve { 
     repository { 
      repoKey = 'libs-release' 
      username = artifactory_user 
      password = artifactory_password 
      maven = true 
     } 
    } 
} 


dependencies { 
    // My dependencies ... 
} 

// Rest of the build script ... 

अब, मैं बेहतर संगठन के लिए एक अलग Gradle स्क्रिप्ट में artifactory हिस्सा बाहर निकलने के लिए चाहते हैं। यह वह जगह है जहां निर्माण गलत हो जाता है। काफी हैरानी की बात है, मैं निम्नलिखित त्रुटि मिलती है, भले ही मैं foo.gradle करने के लिए अपने build.gradle कॉपी, और परिवर्तन build.gradle सिर्फ एक पंक्ति

apply from: 'foo.gradle' 
को रोकने के लिए

त्रुटि

FAILURE: Build failed with an exception. 

* Where: 
Script '/path/to/my/project/foo.gradle' line: 5 

* What went wrong: 
A problem occurred evaluating script. 
> Plugin with id 'artifactory' not found. 

में है मामला यह कोई बग नहीं है, क्या कोई भी कृपया ग्रेडल के apply from के इस व्यवहार को समझा सकता है और समाधान का प्रस्ताव दे सकता है?

धन्यवाद

उत्तर

5

apply from हिस्सा एक बार निर्माण स्क्रिप्ट पहले से ही कॉन्फ़िगर किया गया है पार्स किया गया है, इसलिए जहां प्लग-इन को खोजने के लिए विशिष्ट आईडी से बहुत देर हो चुकी है Gradle बता। आप लिपि में buildscript हिस्सा रखने के लिए होगा, या में रख init script:

apply from : 'http://link.to/my/gradle.script' 
+0

पाया कि यह कैसे में काम का एक उदाहरण का इस्तेमाल कर सकता मैं चारों ओर देखा है:

  • यह निम्न संपत्ति निहित एक init स्क्रिप्ट। मैंने कोशिश की, लेकिन इनिट स्क्रिप्ट को चलाने के लिए नहीं मिल सका और चीज़ों को सही ढंग से सेटअप कर लिया। –

  • +1

    ठीक है, यह ठीक है धारा 60.5 के बारे में बात कर रहा है। उदाहरण जोड़ा गया। – JBaruch

    1

    तुम भी पूरी तरह से योग्य वर्ग के नाम का उपयोग कर सकते अपने सहायक लिपि में प्लग इन लागू करने के लिए:

    buildscript { 
        repositories { 
         jcenter() 
         mavenCentral() 
        } 
        dependencies { 
         classpath "com.adaptc.gradle:nexus-workflow:0.5" 
         classpath "org.jfrog.buildinfo:build-info-extractor-gradle:2.2.4" 
        } 
    } 
    apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPublicationsPlugin 
    apply plugin: com.adaptc.gradle.nexusworkflow.NexusWorkflowPlugin 
    

    ध्यान दें कि यदि आप सामान्य रूप से प्लगइन नामों के साथ सामान्य रूप से करते हैं, तो ग्रैडल को प्लगइन नहीं मिलेंगे।

    यह मैं कैसे Artifactory प्लगइन के लिए वर्ग के नाम देखे हैं:

    1. मैं प्लगइन जो शुक्र open source था डाउनलोड किया।

    2. मैंने फ़ाइलों के बीच प्लगइन का नाम खोजा और artifactory-puplish.properties पाया। implementation-class=org.jfrog.gradle.plugin.artifactory.ArtifactoryPublicationsPlugin

    source of nexus-workflow ऐसी कोई गुण तो फाइल जब तक मैं

    plugins-gradle-master/nexus-workflow/src/main/groovy/com/adaptc/gradle/nexusworkflow/NexusWorkflowPlugin.groovy