gradle maven-publish 플러그인의 문서 에서 프로젝트 groupId
및 version
의를 직접 설정하는 것이 분명합니다 build.gradle
.
group = 'org.gradle.sample'
version = '1.0'
그러나은 artifactId
작업중인 폴더의 이름에서 가져온 것으로 보입니다. artifactId
명시 적으로 설정하는 방법이 있습니까?
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
, 기본값은 프로젝트 디렉토리 이름입니다.
적절한 플러그인이 필요합니다.
plugins {
id 'maven-publish'
}
settings.gradle
(예 :) 에서 변경할 수 있습니다 rootProject.name = "something"
.
루트 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 블록을 사용하는 것이 더 좋은 방법이라고 생각합니다. 거기에서 artifact-id가 될 baseName을 작성할 수 있습니다. 그런 다음 각 하위 프로젝트에 대한 게시 / 게시 블록을 다시 작성하는 대신 다음과 같이 기본 build.gradle에 한 번만 작성합니다.
각 하위 프로젝트 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
}
}
}
젠킨스를 사용하여 Android를 빌드하고 아티팩트에 게시하기 위해 앱 모듈의 build.gradle 에서 그룹 ID, 아티팩트 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
}