11

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

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

プロジェクトの構造

ここに画像の説明を入力

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'
        }
    }
}
4

2 に答える 2

12

Artifactory からリソースを取得することのみに関心がある場合は、artifactory から取得したすべての build.gradle-code をそのままにして、次のように入力するだけです。

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

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

HOST=localhost
REALM=Artifactory Realm
USER=admin
PASSWORD=password
于 2014-03-25T14:24:02.890 に答える
0

Gradle には Artifactory プラグインを使用する必要があります。これにより、Ivy アーティファクトおよび/または Maven アーティファクトとして、パブリッシュと取得の両方が爆発的に行われます。

于 2013-10-16T19:47:32.927 に答える