我正在嘗試生成一個 jar,以便我可以將它用作不同專案的依賴項。在 build.gradle 中,我定義了 maven-publish id 和發布任務,但只生成了以下檔案 - 但我需要custom-codegen-0.0.1-SNAPSHOT.jar
custom-codegen-0.0.1-SNAPSHOT-plain.jar
custom-codegen-0.0.1-SNAPSHOT.module
custom-codegen-0.0.1-SNAPSHOT.pom
maven-metadata-local.xml
構建.gradle
plugins {
id 'org.springframework.boot' version '2.5.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'maven-publish'
}
group = 'com.tmo5'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
}
}
repositories {
maven {
def releasesRepoUrl = "$buildDir/repos/releases"
def snapshotsRepoUrl = "$buildDir/repos/snapshots"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
}
uj5u.com熱心網友回復:
除非您正在創建 Spring Boot 應用程式,否則不應應用 Spring Boot Gradle 插件。它通常不用于創建 Spring Boot 庫或 Spring 庫。它用于創建 Spring Boot 應用程式。春季啟動插件搖籃作出反應各種插件應用,以專案為中記錄的檔案。
其次,如果您希望發布的工件被另一個使用,那么您應該使用java-library代替。
話雖如此,您的 Gradle 構建應該類似于:
plugins {
id 'java-library'
id 'maven-publish'
}
group = 'com.tmo5'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
api platform('org.springframework.boot:spring-boot-dependencies:2.5.6')
api 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
}
}
repositories {
maven {
def releasesRepoUrl = "$buildDir/repos/releases"
def snapshotsRepoUrl = "$buildDir/repos/snapshots"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357285.html
