2015-02-18 11 views
13

मैं नए Gradle और Artifactory के साथ काम कर रहा हूँ और मैं एक उदाहरण हैं जो इस example site मैं यह त्रुटि संदेश है से काम नहीं कर रहा प्रयोग किया है:Gradle Artifactory प्रकाशन त्रुटि

Extension of type 'PublishingExtension' does not exist. Currently registered extension types: [DefaultExtraPropert iesExtension, DefaultArtifactPublicationSet_Decorated, ReportingExtension_Decorated, DefaultProjectComponentContai ner_Decorated, DefaultProjectSourceSet_Decorated, DefaultBinaryContainer_Decorated] 

मैं इस पंक्ति में एक त्रुटि है:

defaults{ 
    publications ('mavenJava') 
} 

कोई भी मेरी मदद कर सकता है मैं इस मुद्दे में इतने लंबे समय तक फंस गया हूं।

जेबारच के रूप में लिंक की समीक्षा करने के बाद कोड के साथ अनुशंसित और तुलना की गई मैंने प्लगइन बदल दिया लेकिन फिर भी वही समस्या। शायद मैं कुछ भ्रमित कर रहा हूँ?

buildscript { 
    repositories { 
     maven { 
      url 'http://.../artifactory/libs-release' 
      credentials { 
       username = "${artifactory_user}" 
       password = "${artifactory_password}" 
      } 
      name = "maven-main-cache" 
     } 
    } 
    dependencies { 
     classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1" 
    } 
} 

apply plugin: 'scala' 
apply plugin: 'maven-publish' 
apply plugin: "com.jfrog.artifactory" 

version = '1.0.0-SNAPSHOT' 
group = 'com.buransky' 

repositories { 
    add buildscript.repositories.getByName("maven-main-cache") 
} 

dependencies { 
    compile 'org.scala-lang:scala-library:2.11.2' 
} 

tasks.withType(ScalaCompile) { 
    scalaCompileOptions.useAnt = false 
} 

artifactory { 
    contextUrl = "${artifactory_contextUrl}" 
    publish { 
     repository { 
      repoKey = 'libs-snapshot-local' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 

     } 
     defaults{ 
      publications ('mavenJava') 
     } 
    } 
} 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 
     } 
    } 
} 

आपको बहुत बहुत

उत्तर

8

धन्यवाद कि artifactory प्लगइन के साथ उपस्थित होने की उम्मीद है maven-publish प्लगइन लागू नहीं किया था (यही कारण है कि मैं पूरी स्रोत कोड पोस्ट करेंगे है)।

the documentation पर एक नज़र डालें, this answer भी मदद कर सकता है (प्लगइन्स नाम परिवर्तन को नोट करें)।

+1

मैं प्लगइन लागू: उदाहरण के रूप में 'Maven से प्रकाशित' और मैं अगर प्लगइन का संस्करण सही है की जाँच की है, क्योंकि जैसा कि आप ने कहा नाम बदलते हैं (इस मामले में com.jfrog.artifactory), लेकिन अभी भी कोई परिणाम नहीं है। मैंने अपना सोर्स कोड एफवाईआई पोस्ट किया है धन्यवाद। –

+0

मैंने सभी प्रकार के प्लगइन की कोशिश की लेकिन अभी भी मुझे कोई सफलता नहीं है और यह प्रकाशनों (mavenJava) संदर्भ पर समान समस्याएं रखता है। एक मैवेन भंडार से संबंधित हो सकता है? –

+0

मैं आज भी ग्रेडल और एंड्रॉइड के लिए आर्टिफैक्टरी प्लगइन का उपयोग करने की कोशिश कर रहा था, साथ ही आपके जैसा ही त्रुटि। https://github.com/JFrogDev/project-examples/tree/master/gradle-android-aar पर कलात्मक उदाहरण सबसे हालिया एंड्रॉइड ग्रेडल प्लगइन के पीछे कुछ संस्करण हैं ... और इसमें भी नहीं है "मैवेन-प्रकाशित" प्लगइन। – McNinja

3

मैं इस पर बहुत समय खो दिया है के बाद से Artifactory डॉक्स पुराना एंड्रॉयड स्टूडियो & Gradle प्लगइन्स संस्करणों का उपयोग, इसलिए यहाँ के साथ मेरे कार्य conf है 1.5.1 के रूप में और Gradle 1.5.0:

वैश्विक build.gradle

buildscript { 
    repositories { 
    jcenter() 
    } 
    dependencies { 
    classpath 'com.android.tools.build:gradle:1.5.0' 
    classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+" 
    } 
} 

मॉड्यूल build.gradle

apply plugin: 'com.jfrog.artifactory' 
apply plugin: 'com.android.library' 
apply plugin: 'maven-publish' 

publishing{ 
    publications { 
    maven(MavenPublication) { 
     groupId packageName 
     version = libraryVersion 
     artifactId project.getName() 
     artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") 
    } 
    } 
} 

artifactory { 
    contextUrl = // yours 
    publish { 
    repository { 
     // The Artifactory repository key to publish to 
     repoKey = 'libs-release-local' 
     username = // yours 
     password = // yours 
    } 
    defaults { 
     publishArtifacts = true 
     publications ('maven') 

     // Properties to be attached to the published artifacts. 
     properties = ['qa.level': 'basic', 'dev.team': 'core'] 
     // Publish generated POM files to Artifactory (true by default) 
     publishPom = true 
    } 
    } 
} 
संबंधित मुद्दे