90

私は Gradle と Artifactory の初心者で、JAR ファイルを Artifactory にアップロードしたいと考えています。

これが私のbuild.gradleファイルです:

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 に送信されません。

どんな助けでも大歓迎です。

編集:

JBaruch が述べたように、以下を追加しました。

apply plugin: 'maven-publish'

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

デフォルトのセクションは Artifactory タスクです。

defaults {
   publications ('mavenJava')
}

今では動作します。

ありがとう。

4

5 に答える 5

58

それはあなたが何も持っていないからですpublicationsartifactory-publishプラグインは、maven-publishプラグインとアップロードで動作しますpublications

古い maven プラグインを使用したい場合は、 ではなくartifactorypluginが必要ですartifactory-publish

公式ドキュメントの「Working with Gradle」ページの概要部分を見てください。

于 2014-03-12T14:06:00.973 に答える
0

これは、Android ライブラリの Kotlin DSL (build.gradle.kts) を使用した方法です。

plugins {
    id("maven-publish")
    // ...
}

lateinit var sourcesArtifact: PublishArtifact
lateinit var javadocArtifact: PublishArtifact
tasks {
    val sourcesJar by creating(Jar::class) {
        archiveClassifier.set("sources")
        from(android.sourceSets["main"].java.srcDirs)
    }

    val dokkaHtml by getting(org.jetbrains.dokka.gradle.DokkaTask::class)

    val javadocJar by creating(Jar::class) {
        dependsOn(dokkaHtml)
        archiveClassifier.set("javadoc")
        from(dokkaHtml.outputDirectory)
    }

    artifacts {
        sourcesArtifact = archives(sourcesJar)
        javadocArtifact = archives(javadocJar)
    }
}

afterEvaluate {
    publishing {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://maven.pkg.github.com/mahozad/android-pie-chart")
                credentials {
                    username = project.properties["github.username"] as String? ?: System.getenv("GITHUB_ACTOR") ?: ""
                    password = project.properties["github.token"] as String? ?: System.getenv("GITHUB_TOKEN") ?: ""
                }
            }
        }
        publications {
            create<MavenPublication>("Release") {
                // Applies the component for the release build variant (two artifacts: the aar and the sources)
                from(components["release"])
                artifact(sourcesArtifact)
                artifact(javadocArtifact)
            }
        }
    }
}

于 2022-02-18T08:47:29.103 に答える