web-dev-qa-db-ja.com

Gradleを使用してArtifactoryからプロジェクトクラスパスにアーティファクトをプルする方法は?

私はgradleとArtifactoryの統合に不慣れで、これまでのところ、あるワークスペースから別のワークスペースにアーティファクトを公開できます。

私が行ったことは、gradleサンプルプロジェクトを作成したことです。次に、JUnit jarをArtifactoryに公開し、それを依存関係としてプロジェクトのクラスパスに取得して、プロジェクトを実行できるようにします。

プロジェクトの構造

enter image description here

build.gradle

apply plugin: 'Java'
   apply plugin: 'Eclipse'
   //apply plugin: 'artifactory-publish'
   sourceCompatibility = 1.5
   version = '1.0'

jar 
{
    manifest 
     {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation Version': version
    }
}

buildscript 
{
    repositories 
    {
        maven 
        {
            url 'http://dl.bintray.com/jfrog/jfrog-jars' 
        }
        mavenCentral()
    }
    dependencies 
    {
        classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.1.0')
    }
}

//pull/retrieve artifacts(jar) from artifactory
repositories 
{
    ivy 
    {
        url = 'http://localhost:8081/artifactory/APM-jars'
         credentials
        {
            username = 'admin'
            password = 'password'
        }
    }
    mavenCentral()

dependencies {
     compile group: 'jakarta-regexp', name: 'jakarta-regexp', version: '1.+'
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}
}
 test {
    systemProperties 'property': 'value'
}

///publish/upload artifact (jar) into 3 different type of builds
uploadArchives 
{
    repositories 
    {
        //Just copy to a directory
    //flatDir 
        //{
            //dirs 'repos2'
        //}


        //Publish to an Ivy repository in Artifactory.
        ivy 
        {    
            url = 'http://localhost:8081/artifactory/test-ivy'
            credentials 
            {
                username = 'admin'
                password = 'password'
            }
        }
    //Publish to a Gradle repository in Artifactory.
    ivy 
    {
        url = 'http://localhost:8081/artifactory/test-gradle'
        credentials 
        {
            username = 'admin'
            password = 'password'
        }
        //layout 'gradle'
        layout 'pattern', 
        {
            artifact '[module]/[revision]/[artifact](.[ext])'
            ivy '[module]/[revision]/ivy.xml'
        }
       }
        //Publish to a Maven repository in Artifactory.
        ivy 
        {
            url = 'http://[Host]:port/artifactory/test-maven'
            credentials 
        {
                username = 'admin'
                password = 'password'
            }
            layout 'maven'
        }
    }
}
8
Simple-Solution

アーティファクトからリソースを取得することにのみ関心がある場合は、アーティファクトから取得したすべてのbuild.gradleコードをそのままにして、次のように入力することができます。

repositories {
    maven {
        url 'http://artifactory.domain/artifactory/libs-release'
    }
}

このアプローチは、アーティファクトへの匿名の読み取りアクセス権があることを前提としています。それ以外の場合は、以下を含むgradle.propertiesファイルも作成する必要があります。

Host=localhost
REALM=Artifactory Realm
USER=admin
PASSWORD=password
8
javabeangrinder

Gradle用のArtifactoryプラグイン を使用する必要があります。 Ivyアーティファクトおよび/またはMavenアーティファクトの両方として、公開と取得の両方を行います。

0
JBaruch