Java 11 和 Gradle 7.2 在這里。我正在嘗試構建一個可重用的庫,我可以(最終)發布到 Maven 存盤庫并拉入其他專案。但首先我只想將它發布到我當地的 m2 存盤庫。
專案目錄結構如下:
mylib/
lib/
src/
build.gradle
在哪里build.gradle
:
plugins {
id 'java-library'
id 'maven-publish'
id 'io.freefair.lombok' version "6.5.0-rc1"
}
sourceCompatibility = 1.11
targetCompatibility = 1.11
archivesBaseName = 'mylib'
version = '1.0.0-RC1'
group = 'org.example'
repositories {
mavenCentral()
}
dependencies {
// omitted for brevity
)
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.2'
}
publishing {
publications {
maven(MavenPublication) {
artifact("build/libs/${archivesBaseName}-${version}.jar") {
extension 'jar'
}
}
}
}
tasks.named('test') {
useJUnitPlatform()
}
publishToMavenLocal.configure {
mustRunAfter build
}
當我跑步時,gradle publishToMavenLocal
我得到:
% ./gradlew clean build publishToMavenLocal
> Task :lib:publishMavenPublicationToMavenLocal FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':lib:publishMavenPublicationToMavenLocal'.
> Failed to publish publication 'maven' to repository 'mavenLocal'
> Invalid publication 'maven': artifact file does not exist: '/Users/myuser/workspace/mylib/lib/build/libs/mylib-1.0.0-RC1.jar'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 833ms
6 actionable tasks: 6 executed
所以看起來即使我指定(在命令列上)運行clean
then build
then publishToMavenLocal
,即使我什至指定 (in build.gradle
)publishToMavenLocal
必須在之后 build
運行,但似乎正在發生的事情是:
publishToMavenLocal
堅持先跑(之前clean
orbuild
)- 由于尚未構建 JAR,因此指定位置 (
"build/libs/${archivesBaseName}-${version}.jar"
)中不存在 JAR 檔案 - 構建失敗,因為工件不存在
所以我想我只需build
要先跑步,publishToMavenLocal
但我沒有想法。
uj5u.com熱心網友回復:
您正在將插件 DSL ( plugins { }
) 與遺留插件應用程式( apply plugin
) 混合。這沒什么大不了的,但您應該使用@sean 的答案并使用插件 DSL 來解決您的問題。
針對您手頭的問題
無法獲取未知屬性“插件”
發生這種情況是因為您錯過:
了apply plugin
apply plugin: 'maven-publish'
uj5u.com熱心網友回復:
嘗試以這種方式放置您的插件。不確定這是否能解決您的問題。
plugins {
id 'java-library'
id 'maven-publish'
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493346.html