根据gradle的maven-publish插件文档,可以清楚地看到在build.gradle
文件中直接设置项目的groupId
和version
:
group = 'org.gradle.sample'
version = '1.0'
然而,artifactId
似乎来自您正在工作的文件夹名称。有没有一种方式可以明确设置 artifactId
?
根据gradle的maven-publish插件文档,可以清楚地看到在build.gradle
文件中直接设置项目的groupId
和version
:
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
}
}
}
Artifact ID默认为settings.gradle
中配置的项目名称,而该文件默认使用项目目录的名称。
您需要相应的插件。
plugins {
id 'maven-publish'
}
与根目录下的 settings.gradle
文件相关,您可以使用以下命令更改根项目的名称:
rootProject.name = "新名称"
rootProject.name = 'myproject'
但是如果您想要更改子项目的名称(例如,AndroidStudio项目的默认“app”子项目),则可以在根settings.gradle
文件中执行以下操作:
但如果你想要改变一个子项目的名字(比如说,Android Studio 项目的默认 "app" 子项目),你可以在根 settings.gradle
文件里做类似这样的事情:
rootProject.children.each {
it.name = ('app' == it.name ? 'MyAppName' : it.name)
}
uploadArchives {
repositories {
mavenDeployer {
pom.artifactId = 'project-sample'
}
}
}
jar {
baseName = 'new-artifact-name-A' //A beacause you also have B, C modules...
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId jar.baseName
from components.java
}
}
}
若要使用Jenkins构建Android应用并发布到Artifactory,请在应用模块的build.gradle文件中配置以下设置以配置组ID、Artifact ID和版本。
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
}
jar.archiveName
来覆盖使用工作文件夹名称的方法...group = 'com.example'
version = '0.0.1-SNAPSHOT'
jar.archiveName = "myproject-0.0.1-SNAPSHOT.jar"
// changes the name of the jar from the directory name
jar.baseName = 'some_arifact_name';
这对我来说似乎有效。
这是我为 我的 Android 库 所做的。解决方案在 Kotlin DSL (build.gradle.kts)中:
plugins {
id("maven-publish")
// ...
}
afterEvaluate {
publishing {
publications {
create<MavenPublication>("Release") {
// ...
groupId = "ir.mahozad.android"
artifactId = "pie-chart"
version = project.version.toString()
artifact(sourcesArtifact)
artifact(javadocArtifact)
// ...
}
}
}
}
你也可以添加一个条件来更改你的artifactId。
publishing {
publications {
maven(MavenPublication) {
//adding conditional
artifactId = artifactId == 'original-name' ? 'my-specific-name' : artifactId
from components.java
}
}
}
如果你有很多项目名称需要更改,你也可以添加一个开关。
publishing {
publications {
maven(MavenPublication) {
//adding switch
switch(artifactId) {
case 'first-project-original-name':
artifactId = 'my-first-specific-name'
break
case 'second-project-original-name':
artifactId = 'my-second-specific-name'
break
default:
break
}
from components.java
}
}
}
MavenPublication
的名称,但我在这方面遇到了一些困难。 - Armandsettings.gradle
中进行更改(例如,rootProject.name =“something”
)。 - Peter Niederwieserplugin: 'maven-publish'
,否则您将会得到Could not find method publishing()
的错误提示。 - best wishes