gpt4 book ai didi

java - 是否可以隐藏依赖项?

转载 作者:行者123 更新时间:2023-11-30 02:42:26 26 4
gpt4 key购买 nike

我的项目在我的 pom.xml 中有依赖项 lib-A第三方 lib-B:1.0lib-A依赖于lib-b:2.0。根据我的理解,如果 lib-A 有一个 lib-b 的阴影版本,那么就可以解决问题,对吗? 但问题是 lib-b 是我无法控制的第三方依赖项。

是否有解决办法,使我的项目和 lib-A 能够与不同版本的 lib-b 正常工作?

最佳答案

解决方法是使用您的项目来遮蔽 lib-b

编辑:

创建新项目,例如 shaded-lib-b 并使用 lib-b 作为依赖项,并且在您的项目中您需要有 shaded-lib-b< 的依赖项 现在 lib-b 的包名称将是 my.shaded.example

shaded-lib-b 的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>my.shaded.example</groupId>
<artifactId>shaded-lib-b</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>lib-b</artifactId>
<version>1.0</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>com.example</pattern>
<shadedPattern>my.shaded.example</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" />
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

关于java - 是否可以隐藏依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41254160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com