Gradle maven-publishプラグインのドキュメント から、プロジェクトのgroupId
とversion
をbuild.gradle
に直接設定したことは明らかです。
group = 'org.gradle.sample'
version = '1.0'
ただし、artifactId
は、作業中のフォルダーの名前から取得されたようです。 artifactId
を明示的に設定する方法はありますか?
publishing {
publications {
maven(MavenPublication) {
groupId 'org.gradle.sample'
artifactId 'project1-sample'
version '1.1'
from components.Java
}
}
}
アーティファクトIDは、デフォルトでsettings.gradle
で構成されたプロジェクト名になり、プロジェクトディレクトリの名前になります。
ルートsettings.gradle
ファイルに関連して、次の方法でルートプロジェクトの名前を変更できます。
rootProject.name = 'myproject'
ただし、サブプロジェクトの名前(AndroidStudioプロジェクトのデフォルトの "app"サブプロジェクトなど)を変更する場合は、ルートsettings.gradle
ファイルで次のようなことができます。
rootProject.children.each {
it.name = ('app' == it.name ? 'MyAppName' : it.name)
}
これはmaven-publishプラグインの正しい答えです。これは、古いmavenプラグインの後継として意図されています。
私のように、古いプラグインに固執している場合、「gradleプロジェクトのMavenアーティファクトIDを設定する方法」に対する正しい答えは次のとおりです。
uploadArchives {
repositories {
mavenDeployer {
pom.artifactId = 'project-sample'
}
}
}
マルチモジュールプロジェクトがあり、アーティファクトの名前をディレクトリ(settings.gradleに設定されている)とは異なるものにする場合、サブプロジェクトごとにjarブロックを作成することをお勧めします。そこで、baseNameを記述できます。これは、アーチファクトIDになります。次に、各サブプロジェクトの発行/公開ブロックを書き換えるのではなくメインbuild.gradleにこの方法で1回だけ書き込みます。
各サブプロジェクトbuild.gradleについて:
jar {
baseName = 'new-artifact-name-A' //A beacause you also have B, C modules...
}
メインbuild.gradleで:
publishing {
publications {
mavenJava(MavenPublication) {
artifactId jar.baseName
from components.Java
}
}
}
ただし、artifactIdは、作業中のフォルダーの名前から取得されているようです。 artifactIdを明示的に設定する方法はありますか?
これに対する簡単な答えは、jar.baseName
を設定して、ディレクトリ名を上書きすることです。
// changes the name of the jar from the directory name
jar.baseName = 'some_arifact_name';
これは私にとってはうまくいくようです。
Gradleでは、jar.archiveName
を設定して、作業フォルダーの名前の使用をオーバーライドできます...
group = 'com.example'
version = '0.0.1-SNAPSHOT'
jar.archiveName = "myproject-0.0.1-SNAPSHOT.jar"
Androidをビルドし、jenkinsを使用してアーティファクトに公開するために、グループID、アーティファクトID、およびバージョンを構成するために、アプリモジュールのbuild.gradleで以下の設定を構成しました。
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
group "com.company.division.productgroup" //add group id
version "8.8.8" //add version
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
versionCode 32
versionName "$version"
archivesBaseName = "Android-appname" //add artifact id
}