當我嘗試將專案從 maven/sbt 轉換為 Gradle 時:
https://github.com/tek/splain/blob/nexusRelease/Dev1/build.gradle.kts
在比較新發布的 pom 檔案(通過 gradle)時,我發現了一些問題:
...
<modelVersion>4.0.0</modelVersion>
<groupId>io.tryp</groupId>
<artifactId>splain_2.13.6</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.13.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.tryp</groupId>
<artifactId>splain_2.13.6</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
</dependencies>
</project>
舊的(由 sbt 提供):
...
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.13.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.5</version>
</dependency>
<dependency>
<groupId>com.chuusai</groupId>
<artifactId>shapeless_2.13</artifactId>
<version>2.3.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dev.zio</groupId>
<artifactId>zio_2.13</artifactId>
<version>1.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.specs2</groupId>
<artifactId>specs2-core_2.13</artifactId>
<version>4.5.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
gradle 生成的 pom 檔案對自身有自參考依賴。這導致 nexus 發布未能通過健全性檢查。我的問題是:
這應該是非法的嗎?為什么 gradle 允許這樣做?
為什么會產生?
Gradle 還存在一些其他問題(例如provided范圍的棄用),但到目前為止,這是所有問題中最嚴重的問題。
uj5u.com熱心網友回復:
已修復,原來問題是由“java-test-fixtures”插件引起的。
測驗裝置沒有對應的 Maven 范圍,因此默認情況下,它們的依賴項在發布時合并到編譯范圍依賴項中。一旦我禁用了他們的發布,問題就消失了:
val javaComponent = components["java"] as AdhocComponentWithVariants
from(javaComponent)
javaComponent.withVariantsFromConfiguration(configurations["testFixturesApiElements"]) { skip() }
javaComponent.withVariantsFromConfiguration(configurations["testFixturesRuntimeElements"]) { skip() }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/358329.html
上一篇:Ionic5Capacitor3應用程式未顯示在Android8上,但從androidstudio運行應用程式運行良好
下一篇:如何使用內連接和聚合函式更新列?
