web-dev-qa-db-ja.com

gradleを使用してソースをnexusリポジトリにアップロードする

Gradleのmavenプラグインを使用してjarをnexusリポジトリに正常にアップロードしましたが、ソースをアップロードしませんでした。これは私の構成です:

uploadArchives {
    repositories{
        mavenDeployer {
            repository(url: "http://...") {
                 authentication(userName: "user", password: "myPassword")
            }
        }
    }
}

検索して、新しいタスクを追加することでソースを追加できることがわかりました。

task sourcesJar(type: Jar, dependsOn:classes) {
     classifier = 'sources'
     from sourceSets.main.allSource
}

artifacts {
     archives sourcesJar
}

これは正常に機能しますが、mavenプラグインを構成することにより、次のようなuploadSource = trueのようなより良いソリューションが必要だと思います。

uploadArchives {
    repositories{
        mavenDeployer {
            repository(url: "http://...") {
                 authentication(userName: "user", password: "myPassword")
            }
            uploadSources = true
        }
    }
}
21
gllambi

あなたが自分で説明したものよりも良い解決策はありません。 gradle mavenプラグインは、現在のプロジェクトで生成されたすべてのアーティファクトをアップロードしています。そのため、「ソース」アーティファクトを明示的に作成する必要があります。

新しい maven-publish プラグインを使用しても状況は変わりません。ここでは、追加のアーティファクトを明示的に定義する必要もあります。

task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.Java

            artifact sourceJar {
                classifier "sources"
            }
        }
    }
}

その理由は、gradleは一般的なビルドツールであり、純粋なJavaプロジェクトに縛られていないということです。

8
Sebi

gradle-nexus-plugin を使用できます

プラグインを使用するには、以下の行を追加してプラグインをインポートします

buildscript {
     repositories {
         mavenLocal()
         jcenter {
            url "http://jcenter.bintray.com/"
        }
     }
     dependencies {
         classpath 'com.bmuschko:gradle-nexus-plugin:2.3'
     }
 }

apply plugin: 'com.bmuschko.nexus'

このセクションを追加します。ここで、デプロイするURLを構成します。

nexus {
     sign = false
     repositoryUrl = 'http://localhost:8081/nexus/content/repositories/releases/'
     snapshotRepositoryUrl = 'http://localhost:8081/nexus/content/repositories/internal-snapshots/'
 }

注:〜/ .gradle/gradle.propertiesに必要です

nexusUsername = deployment
nexusPassword = deployment123
5
Eddú Meléndez