Загрузить артефакт в Artifactory с помощью Gradle
Я новичок в Gradle и Artifactory, и я хочу загрузить файл JAR в Artifactory.
вот мой build.gradle file:
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
}
после artifactoryPublish задача, сборка выполнена успешно, как показано ниже:
> 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
однако в Artifactory ничего не отправляется, кроме информации о сборке.
любая помощь будет высоко ценится.
Edit:
как JBaruch упомянули, я добавлено
apply plugin: 'maven-publish'
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}
и раздел по умолчанию для artifactory task
defaults {
   publications ('mavenJava')
}
теперь все работает.
спасибо
3 ответа:
это потому что у вас нет никаких
publications. Элементartifactory-publishплагин работает сmaven-publishплагин и передаетpublications.если вы предпочитаете работать с старый плагин maven необходимо
artifactoryплагин, а неartifactory-publish.посмотри обзорная часть на странице "Работа с Gradle" официальные документы.
Я получил эту работу. Я фактически использовал уже созданную банку, поэтому я использую приведенный ниже код, чтобы указать мою банку, которая должна быть загружена:
publishing { publications { mavenJava(MavenPublication) { // from components.java artifact file("path/jar-1.0.0.jar") } } }
вам нужны плагины :
apply plugin: 'java' apply plugin: 'groovy' apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.artifactory'чтобы построить проект и получить банки из 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 } } }и для публикации:
publishing { publications { mavenJava(MavenPublication) { from components.java } } }gradle.свойства
artifactory_user=publisher artifactory_password=***** artifactory_contextUrl=http://IP:PORT/artifactoryтак что все просто. Если вы хотите загрузить свою банку:
gradle artifactoryPublish