当前位置: 首页 > 知识库问答 >
问题:

如何排除hive-exec的所有漏洞,其中包括“阴影”依赖本身?

谷善
2023-03-14

我必须删除“dependency-check”中的所有“高严重性”漏洞,这些漏洞是通过Maven-plugin生成的。很难删除“hive-exec”的漏洞。

我可以在每个 中使用 -tag或更改版本来删除大多数漏洞。
我还试图在我的pom文件中排除这个“parquet-hadoop”...

     <dependencies>
      ...
        <dependency>
          <groupId>org.apache.hive</groupId>
          <artifactId>hive-exec</artifactId>
          <version>3.1.0</version>
          <exclusions>
            <exclusion>
            <groupId>org.apache.parquet</groupId>
            <artifactId>parquet-hadoop-bundle</artifactId>
            </exclusion>
            ...
          </exclusions>
        </dependency>
      </dependencies>

但是它不能删除这个“parquet-hadoop-bundle”,因为它们在“hive-exec”中被“shaded”。

在hive-exec-3.1.0.jar中有一个名为hive-exec-3.1.0.pom的文件隐藏了这个“parquet-hadoop”。hive-exec-3.1.0.pom包含以下内容...

          <plugin>
           <artifactId>maven-shade-plugin</artifactId>
           <executions>
             <execution>
               <id>build-exec-bundle</id>
               <phase>package</phase>
               <goals>
                 <goal>shade</goal>
               </goals>
               <configuration>
                 <artifactSet>
                   <includes>
                     <include>org.apache.hive:hive-common</include>
                     ...
                     <include>org.apache.parquet:parquet-hadoop- 
                      bundle</include>

我还试图删除他们与阴影插件在我的pom文件。但不管用。

如果有人对这种问题有经验,我会很高兴的。

共有1个答案

东方英豪
2023-03-14

一所大学找到了解决办法。

    ...
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-exec</artifactId>
      <version>3.1.0</version>
      <classifier>core</classifier>
      <exclusions>
      ...

我们可以用“classifier”-标记和值-“core”指定hive-exec的jar。这个“核心”只包括“hive-exec”的基本部分。通过这种方式,我可以删除所有的高级和中级漏洞。

 类似资料:
  • 问题内容: 我想使用maven shade创建一个有阴影的jar,但我也想仅在有阴影的jar的情况下才包含一个特殊的依赖项(而不是在我项目的普通编译依赖项中)。我该怎么办? 根据我的理解,包含/排除项只是白名单/黑名单,因此我无法明确强制要包含的内容未包含在实际依赖项列表中。 对于更多上下文,我有一个JAR依赖项,其中包含只希望包含在我的一个阴影工件中的资源,但是如果在类路径中使用该jar会导致错

  • 根据我的理解,包含/排除只是白名单/黑名单,所以我不能显式地强制包含一些没有包含在实际依赖列表中的内容。 为了获得更多的上下文,我有一个JAR依赖项,它包含一个资源,我只希望它包含在我的shade工件中,但是在类路径上使用该JAR会导致错误。 明确地说,我希望在一个调用中生成一个带有附加依赖项的阴影jar,以及一个没有附加依赖项的普通jar。

  • 我试图将某些类排除在阴影jar之外。 我尝试了几种不同的配置,但出于某种原因,jar仍然包含在我的jar中。以下是插件设置: 我还尝试了以下模式: 这些都没有真正从我的jar中排除该文件。如何从我的 jar 中排除此类?

  • 我正试图让maven下载所有的依赖项(编译、测试、插件等)。)这样我就可以避免让我们的dockerized构建浪费不必要的时间一遍又一遍地下载它们。 我们已经对maven build进行了dockerized,这样我们就可以从jenkins运行它,而无需在jenkins机器上安装大量构建特定的依赖项(Java、redis、maven依赖项等)。我们的构建依赖于增量docker构建,它只执行实际需要

  • 我遇到了一个我一直无法解决的特殊问题,如果有任何帮助,我将不胜感激。最初,我在Java项目中包含了一些jar依赖项作为工件依赖项。它看起来如下所示: 到目前为止还好。让我们把这个项目叫做'A'。我已经将项目A包含在另一个Java项目B中,同样是用Gradle。我注意到,当在B中使用一个带有maven-publish的published时,它在pom文件中并没有排除所有的传递依赖项。 所以我开始使用

  • 我想使用第三方供应商的jar。但是在这个jar中,我有Java包的旧版本我需要找到一些方法将包从主项目中排除。像这样的东西: 你能推荐一些解决方案吗?