Поэтому я потратил (инвестировал) день или два, чтобы узнать, как опубликовать JAR с помощью Gradle на локально работающем сервере Artifactory . Я использовал плагин Gradle Artifactory для публикации. Я был потерян в бесконечном цикле включения различных версий различных плагинов и выполнения всевозможных задач. Да, я читал документацию раньше. Это просто неправильно. Возможно, в это время стало лучше.
Выполнение следующего загрузило только информацию о сборке. Артефакт (JAR) не был опубликован.
|
1
2
3
4
5
6
7
8
|
$ gradle artifactoryPublish:artifactoryPublishDeploying build info to: http://localhost:8081/artifactory/api/buildBuild 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 SUCCESSFULTotal 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=devuserartifactory_password=devuserartifactory_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:artifactoryPublishDeploying artifact: http://localhost:8081/artifactory/libs-snapshot-local/com/buransky/scala-gradle-artifactory/1.0.0-SNAPSHOT/scala-gradle-artifactory-1.0.0-SNAPSHOT.pomDeploying artifact: http://localhost:8081/artifactory/libs-snapshot-local/com/buransky/scala-gradle-artifactory/1.0.0-SNAPSHOT/scala-gradle-artifactory-1.0.0-SNAPSHOT.jarDeploying build info to: http://localhost:8081/artifactory/api/buildBuild 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 SUCCESSFULTotal time: 5.807 secs |
Счастливый конец:
| Ссылка: | Опубликуйте артефакт JAR с помощью Gradle to Artifactory от нашего партнера по JCG Радо Буранского в блоге Радо Буранского . |
