我正在尝试使用Nexus OSS存储库管理器(sonatype)将this Scala library发布到Maven。
我的库依赖于Play Framework的最新版本(com.typesafe.play:play_2.13:2.8.18),而Play Framework又依赖于com.fasterxml.Jackson(2.11.4)的旧版本。
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.13.4"
我已经使用sbt依赖树插件验证了构建使用正确版本的jackson-databind,并且还检查该高速缓存文件。
尽管如此,当我使用sbt-sonatype插件(版本3.9.14)发布到maven时,我的发布被Sonatype Lift漏洞扫描器拒绝,因为pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.11.4
中存在漏洞,即比我的构建中实际使用的库版本旧,如dependencyOverrides中所指定的。
当我检查自动提交给Nexus存储库管理器的构建构件时,提到的唯一依赖项是POM文件中指定的顶级依赖项因此,SonatypeLift似乎查看了这些顶层依赖关系,并遍历依赖关系图以查找隐含依赖关系中的漏洞,忽略了我已经显式覆盖了我的构建中jackson-databind的版本这一事实。
是否有任何方法可以将依赖关系覆盖传播到POM?
<?xml version='1.0' encoding='UTF-8'?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mesonomics</groupId>
<artifactId>play-hmac-signatures_2.13</artifactId>
<packaging>jar</packaging>
<description>play-hmac-signatures</description>
<url>https://github.com/phelps-sg/play-hmac-signatures</url>
<version>0.2.2</version>
<licenses>
<license>
<name>Apache-2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<name>play-hmac-signatures</name>
<organization>
<name>com.mesonomics</name>
<url>https://github.com/phelps-sg/play-hmac-signatures</url>
</organization>
<scm>
<url>https://github.com/phelps-sg/play-hmac-signatures</url>
<connection>git@github.com:phelps-sg/play-hmac-signatures.git</connection>
</scm>
<developers>
<developer>
<id>phelps-sg</id>
<name>Steve Phelps</name>
<url>https://github.com/usernamehttps://github.com/phelps-sg</url>
<email>sphelps@sphelps.net</email>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.10</version>
</dependency>
<dependency>
<groupId>com.typesafe.play</groupId>
<artifactId>play_2.13</artifactId>
<version>2.8.18</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.scalactic</groupId>
<artifactId>scalactic_2.13</artifactId>
<version>3.2.14</version>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.13</artifactId>
<version>3.2.14</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalatestplus.play</groupId>
<artifactId>scalatestplus-play_2.13</artifactId>
<version>5.1.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
1条答案
按热度按时间nbysray51#
尽管报告了漏洞,但该工件实际上最终还是在Maven上发布了,这只是一个等待的例子。