Поэтому я потратил (инвестировал) день или два, чтобы узнать, как опубликовать JAR с помощью Gradle на локально работающем сервере Artifactory . Я использовал плагин Gradle Artifactory для публикации. Я был потерян в бесконечном цикле включения различных версий различных плагинов и выполнения всевозможных задач. Да, я читал документацию раньше. Это просто неправильно. Возможно, в это время стало лучше.
Выполнение следующего загрузило только информацию о сборке. Артефакт (JAR) не был опубликован.
1
2
3
4
5
6
7
8
|
$ gradle artifactoryPublish :artifactoryPublish Deploying build info to: http: //localhost:8081/artifactory/api/build Build successfully deployed. Browse it in Artifactory under http: //localhost:8081/artifactory/webapp/builds/scala-gradle-artifactory/1408198981123/2014-08-16T16:23:00.927+0200/ BUILD SUCCESSFUL Total time: 4.681 secs |
Этот парень спас меня, я хотел поцеловать его: StackOverflow — загрузить артефакт в артефакт, используя gradle
Я предполагаю, что у вас уже есть Gradle и Artifactory. У меня был проект Scala, но это не имеет значения. Ява должна быть просто в порядке. Я запустил Artifactory локально на порту 8081. Я также создал нового пользователя с именем devuser
которого есть разрешения на развертывание артефактов.
Короче говоря, это мой последний build.gradle
скрипта build.gradle
:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
buildscript { repositories { maven { credentials { username = "${artifactory_user}" password = "${artifactory_password}" } name = "maven-main-cache" } } dependencies { classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1" } } apply plugin: 'scala' apply plugin: 'maven-publish' apply plugin: "com.jfrog.artifactory" version = '1.0.0-SNAPSHOT' group = 'com.buransky' repositories { add buildscript.repositories.getByName( "maven-main-cache" ) } dependencies { compile 'org.scala-lang:scala-library:2.11.2' } tasks.withType(ScalaCompile) { scalaCompileOptions.useAnt = false } artifactory { contextUrl = "${artifactory_contextUrl}" publish { repository { repoKey = 'libs-snapshot-local' username = "${artifactory_user}" password = "${artifactory_password}" maven = true } defaults { publications ( 'mavenJava' ) } } } publishing { publications { mavenJava(MavenPublication) { from components.java } } } |
Я сохранил URL контекста Artifactory и учетные данные в ~/.gradle/gradle.properties
и это выглядит так:
1
2
3
|
artifactory_user=devuser artifactory_password=devuser artifactory_contextUrl=http: //localhost:8081/artifactory |
Теперь, когда я снова запускаю ту же задачу, это то, что я хотел. Файл Maven POM и архив JAR развернуты в Artifactory:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
$ gradle artifactoryPublish :generatePomFileForMavenJavaPublication :compileJava UP-TO-DATE :compileScala UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :jar UP-TO-DATE :artifactoryPublish Deploying artifact: http: //localhost:8081/artifactory/libs-snapshot-local/com/buransky/scala-gradle-artifactory/1.0.0-SNAPSHOT/scala-gradle-artifactory-1.0.0-SNAPSHOT.pom Deploying artifact: http: //localhost:8081/artifactory/libs-snapshot-local/com/buransky/scala-gradle-artifactory/1.0.0-SNAPSHOT/scala-gradle-artifactory-1.0.0-SNAPSHOT.jar Deploying build info to: http: //localhost:8081/artifactory/api/build Build successfully deployed. Browse it in Artifactory under http: //localhost:8081/artifactory/webapp/builds/scala-gradle-artifactory/1408199196550/2014-08-16T16:26:36.232+0200/ BUILD SUCCESSFUL Total time: 5.807 secs |
Счастливый конец:
Ссылка: | Опубликуйте артефакт JAR с помощью Gradle to Artifactory от нашего партнера по JCG Радо Буранского в блоге Радо Буранского . |