Prześlij artefakt do Artifactory za pomocą Gradle

Jestem początkującym Gradle i Artifactory i chcę przesłać plik JAR do Artifactory.

Oto mój build.gradle Plik:

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
}

Po uruchomieniu zadania artifactoryPublish, budowanie zakończy się sukcesem, jak pokazano poniżej:

> 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

Nie ma jednak nic wysyłanego do Artifactory poza informacjami o budowie.

Każda pomoc będzie mile widziana.

Edit:

Jak wspomniał JBaruch, dodałem

apply plugin: 'maven-publish'

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

I domyślnie sekcja artifactory Zadanie

defaults {
   publications ('mavenJava')
}
Teraz działa.

Dzięki

Author: anothernode, 2014-03-12

3 answers

To dlatego, że nie masz żadnego publications. Na artifactory-publish plugin działa z maven-publish plugin i uploady publications.

Jeśli wolisz pracować z starą wtyczką maven, potrzebujesz artifactory plugin , nie artifactory-publish.

W tym samym czasie Gradle i Gradle są w stanie pracować z Gradle ' em.
 46
Author: JBaruch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-09 15:32:52

Działa. W rzeczywistości używałem już utworzonego jar, więc używam poniższego kodu, aby określić mój jar, który ma zostać przesłany:

publishing {
    publications {
        mavenJava(MavenPublication) {
            // from components.java
            artifact file("path/jar-1.0.0.jar")
        }
    }
}
 7
Author: sver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-23 08:00:27

Potrzebujesz wtyczek:

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

Aby zbudować projekt i pobrać słoiki z 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 configs:

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

        }
    }
}

I do publikacji:

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}
Gradle.właściwości
artifactory_user=publisher
artifactory_password=*****
artifactory_contextUrl=http://IP:PORT/artifactory
Więc wszystko jest proste. Jeśli chcesz wgrać swój jar:
gradle artifactoryPublish
 1
Author: grep,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-14 13:49:47