Jestem nowicjuszem w 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 artifactoryPublish
zadania kompilacja zakończyła się pomyślnie, 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
Jednak nic nie jest wysyłane do Artifactory oprócz informacji o kompilacji.
Każda pomoc będzie mile widziana.
Edytować:
Jak wspomniał JBaruch, dodałem
apply plugin: 'maven-publish'
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
i domyślna sekcja zadania artefaktycznego
defaults {
publications ('mavenJava')
}
Teraz działa.
Dzięki
gradle
publish
artifactory
tuncaysenturk
źródło
źródło
defaults
faktycznie wchodzi do środkaartifactory.publish
, a nie tylko doartifactory
zadania głównego .Error:(x, 0) Could not find property 'java' on SoftwareComponentInternal set.
Czy mógłbyś opublikować pełny scenariusz?apply plugin: 'maven'
wygenerowany plik pom i jeśli mamy'apply plugin: 'maven-publish'
plik jar zostanie opublikowany. I nie musiałempublishing.publications.mavenJava(MavenPublication) { from components.java }
. Jednak musisz miećdefault {publications ('mavenJava'); publishConfigs('archives', 'published') }
Odpowiedzi:
To dlatego, że ich nie masz
publications
.artifactory-publish
Wtyczka współpracuje zmaven-publish
wtyczką i przesyłaniapublications
.Jeśli wolisz pracować ze starą wtyczką maven , potrzebujesz
artifactory
wtyczki , a nieartifactory-publish
.Zapoznaj się z częścią Przegląd na stronie „Praca z Gradle” w oficjalnych dokumentach.
źródło
maven-publish
w dokumentacji nie ma o tym wzmianki . Dzięki za pomoc @JBaruch! jfrog.com/confluence/display/RTF/…maven-publish
. Zgadzam się z @Ryan, że byłoby to pomocne. Ale dzięki za odpowiedź tutajMam to działające. W rzeczywistości korzystałem z już utworzonego słoika, więc używam poniższego kodu, aby określić mój słoik, który ma zostać przesłany:
źródło
Potrzebujesz wtyczek:
aby zbudować projekt i odzyskać słoiki z artefaktury:
Konfiguracje Artifactory:
i do publikacji:
gradle.properties
Więc wszystko jest po prostu proste. Jeśli chcesz przesłać swój jar:
źródło
To właśnie zadziałało dla mnie z poleceniem
gradle clean build publish
źródło