গ্রেডল ব্যবহার করে আর্টিফ্যাক্টে শিল্পকর্ম আপলোড করুন


84

আমি গ্রেডল এবং আর্টিফট্রির একজন নবাগত এবং আমি আরএফটি কারখানায় একটি জেআর ফাইল আপলোড করতে চাই।

আমার build.gradleফাইলটি এখানে :

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'artifactory-publish'

groupId = 'myGroup'
version = '1.0'
def artifactId = projectDir.name
def versionNumber = version

artifactory {
    contextUrl = 'http://path.to.artifactory' // base artifactory url
    publish {
        repository {
            repoKey = 'libs-releases'   // Artifactory repository key to publish to
            username = 'publisher'      // publisher user name
            password = '********'       // publisher password
            maven = true
        }
    }
}

artifactoryPublish { 
    dependsOn jar
}

artifactoryPublishটাস্কটি চালানোর পরে , নিচের মতো দেখানো হয়েছে বিল্ডটি সফল:

> gradle artifactoryPublish  --stacktrace
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:artifactoryPublish
Deploying build info to: http://path.to.artifactory/api/build

BUILD SUCCESSFUL

Total time: 7.387 secs

তবে আর্টফ্যাক্টরিতে বিল্ড তথ্য ছাড়া আর কিছুই পাঠানো হয়নি।

যে কোন সাহায্যের জন্য অনেক প্রশংসা করা হবে।

সম্পাদনা করুন:

জে বারুচ যেমন উল্লেখ করেছেন, আমি যুক্ত করেছি

apply plugin: 'maven-publish'

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

এবং কৃত্রিম টাস্ক ডিফল্ট বিভাগ

defaults {
   publications ('mavenJava')
}

এখন এটা কাজ করছে.

ধন্যবাদ


4
অত্যন্ত সহায়ক প্রশ্ন এবং আপডেটের জন্য ধন্যবাদ। একটি নোট যা আমাকে সহায়তা করেছিল: defaultsপ্রকৃতপক্ষে artifactory.publishকেবলমাত্র মূল artifactoryকাজে নয়, ভিতরে চলে যায় inside
রায়ান ওয়ালস

4
আমি এটি একটি ব্লগে এর সংক্ষিপ্ত বিবরণ দিয়েছি: buransky.com/scala/…
রাদো বুরাসস্কি

4
আমি যখন চেষ্টা করি তখন পাই: Error:(x, 0) Could not find property 'java' on SoftwareComponentInternal set.আপনি কি পুরো স্ক্রিপ্টটি পোস্ট করতে পারেন?
নিম্রোদ দায়ান

আমি আমার গ্রেডল ফোল্ডারে (গ্রেডেল / স্যাম্পেল.জার) রেখেছি এমন একটি জার আপলোড করার জন্য আমি উপরের কোডটি লিখছি, আমি কার্যকর করি এবং দেখি যে কেবল বিল্ড তথ্যই আপলোড হচ্ছে। আমার 2 সন্দেহ আছে। প্রথমত, আমরা কোন জারটি আপলোড করতে হবে তা নির্দিষ্ট করে দিচ্ছি, আমরা কোথাও রাস্তাটি নির্দিষ্ট করে নেই। দ্বিতীয়ত, আমি যদি আর্টিফিকেশন.প্রকাশে ডিফল্ট বিভাগটি লিখি তবে আমি ত্রুটি ত্রুটি পেয়েছি: (82, 0) 'পাবলিশিং এক্সটেনশন' টাইপের সম্প্রসারণ বিদ্যমান নেই। বর্তমানে রেজিস্টার্ড এক্সটেনশন প্রকারগুলি: [DefaultExtraPropertiesExistance, DefaultArtifactPublicationSet_Corated .. কোনও সমাধান ??
sver

যতক্ষণ apply plugin: 'maven'না আমাদের পম ফাইল তৈরি হয় এবং আমাদের কাছে 'apply plugin: 'maven-publish'জার ফাইল প্রকাশিত হয়। এবং আমার ছিল না publishing.publications.mavenJava(MavenPublication) { from components.java }। তবে আপনার কাছে থাকতে হবে default {publications ('mavenJava'); publishConfigs('archives', 'published') }
রবিকণ্ঠ

উত্তর:


55

এটি কারণ আপনার কোনও নেই publicationsartifactory-publishপ্লাগ-ইন সাথে কাজ করে maven-publishপ্লাগইন এবং আপলোডগুলির publications

আপনার সাথে কাজ চান পুরাতন ম্যাভেন প্লাগইন , আপনি প্রয়োজন artifactoryপ্লাগ ইন না artifactory-publish

একবার দেখুন অফিসিয়াল ডক্সের "ওয়ার্কিং উইথ গ্রেডল" পৃষ্ঠায় ওভারভিউ অংশটি


4
হাই জব্রাচ আপনার প্রতিক্রিয়া জন্য ধন্যবাদ। অন্যদের একই সমস্যা হতে সহায়তা করতে আমি পোস্টে অভাব অংশগুলি যুক্ত করেছি।
টিউনসায়েন্সটর্ক

7
আমি আশা করি কারিগর থেকে কেউ এসেছেন ... কারণ maven-publishডকুমেন্টেশনে শূন্যের উল্লেখ রয়েছে । জে বারুচ সহায়তার জন্য ধন্যবাদ! jfrog.com/confluence/display/RTF/…
রায়ান ওয়ালস

আপনি আমাকে "শিল্পকলার কেউ" বিবেচনা করতে পারেন :) অফিসিয়াল ডকুমেন্টেশনে এখানে ব্যাখ্যা। উত্তরে এটি যুক্ত করা হচ্ছে।
জবারুচ

4
@ জেবারুচ এখনও দুটি লিঙ্কযুক্ত পৃষ্ঠার কোনওটিরই উল্লেখ করেনি maven-publish। আমি @ রায়ান এর সাথে একমত যে এটি সহায়ক হবে। তবে উত্তরের জন্য এখানে ধন্যবাদ
হেইনরিখ ফিল্টার

বর্তমান ডক উদাহরণগুলিতে অ্যান্ড্রয়েড স্টুডিও গ্রেড প্লাগইন v0.9 ব্যবহার করে যা সম্পূর্ণ পুরানো এবং অবহিত, সর্বশেষতম v1.5.0। অবশ্যই, উদাহরণগুলি এই সংস্করণটির সাথে কাজ করে না: /
র‌্যামি ডেভিড

8

আমি এই কাজ পেয়েছিলাম। আমি আসলে একটি ইতিমধ্যে তৈরি জার ব্যবহার করছিলাম তাই আমি আপলোড করা হবে এমন আমার জারটি নির্দিষ্ট করতে নীচের কোডটি ব্যবহার করছি:

publishing {
    publications {
        mavenJava(MavenPublication) {
            // from components.java
            artifact file("path/jar-1.0.0.jar")
        }
    }
}

7

আপনার প্লাগইনগুলি দরকার:

apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'

প্রকল্প তৈরি এবং কারিগর থেকে জারগুলি পুনরুদ্ধার করতে:

buildscript {
    repositories {
        maven {
            url 'http://[IP]:[PORT]/artifactory/gradle-dev'
            credentials {
                username = "${artifactory_user}"
                password = "${artifactory_password}"
            }
        }
        mavenCentral()
    }
    dependencies { classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.5.4" }
}

repositories {
    mavenCentral()
    mavenLocal()
}

কৃত্রিম কনফিগারেশন:

artifactory {
    contextUrl = "${artifactory_contextUrl}"
    publish {
        repository {
            repoKey = 'gradle-dev-local'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true
        }
        defaults {
            publications('mavenJava')
        }
        publishBuildInfo = true
        publishArtifacts = true
        publishPom = true
    }
    resolve {
        repository {
            repoKey = 'gradle-dev'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true

        }
    }
}

এবং প্রকাশের জন্য:

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

গ্রেড.প্রোপার্টি

artifactory_user=publisher
artifactory_password=*****
artifactory_contextUrl=http://IP:PORT/artifactory

সুতরাং সবকিছু সহজ। আপনি যদি নিজের জারটি আপলোড করতে চান:

gradle artifactoryPublish

4

কমান্ডটি নিয়েই এটি আমার পক্ষে কাজ করেছিল gradle clean build publish

apply plugin: 'maven-publish'
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'maven'

group = 'com.mine'
version = '1.0.1-SNAPSHOT'

repositories{
    mavenCentral()
}

dependencies {
    compile gradleApi()
    compile localGroovy()
    compile 'com.google.guava:guava:27.0-jre'
    testCompile 'junit:junit:4.12'
    //compile 'org.apache.commons:commons-lang3:3.8.1'
}

publishing {
    repositories {
        maven {
            url = 'https://artifactory.mine.net/artifactory/my-snapshots-maven'
            credentials {
                username 'user'
                password 'password'
            }
        }
    }
    publications{
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.