Gradle 프로젝트의 Maven 아티팩트 ID를 어떻게 설정합니까?
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 블록을 사용하는 것이 더 나은 방법이라고 생각합니다. 거기에서 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
}
}
}
그러나 artifactId는 작업중인 폴더의 이름에서 가져온 것으로 보입니다. artifactId를 명시 적으로 설정하는 방법이 있습니까?
이에 대한 간단한 대답 jar.baseName
은 디렉토리 이름을 재정의하는 을 설정하는 것 입니다.
// changes the name of the jar from the directory name
jar.baseName = 'some_arifact_name';
이것은 나를 위해 일하는 것 같습니다.
For building android and publishing to artifactory using jenkins, I configured the settings below in the app modules's build.gradle for configuring group id, artifact id, and version.
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
}
In Gradle, you can set jar.archiveName
to override the use of the working folder's name...
group = 'com.example'
version = '0.0.1-SNAPSHOT'
jar.archiveName = "myproject-0.0.1-SNAPSHOT.jar"
'code' 카테고리의 다른 글
패키지를로드 할 수 없습니다 : package. : 빌드 가능한 Go 소스 파일이 없습니다. (0) | 2020.10.30 |
---|---|
C ++ 11 이니셜 라이저 목록이 실패하지만 길이가 2 인 목록에서만 (0) | 2020.10.30 |
componentWillUnmount에서 가져 오기를 취소하는 방법 (0) | 2020.10.30 |
log4net으로 추적 메시지를 기록하는 방법은 무엇입니까? (0) | 2020.10.30 |
Android에서 내 애플리케이션 이름 지정 (0) | 2020.10.30 |