将 Java 依赖项从 Fat Jar 更新为 Thin Jahr

问题描述 投票:0回答:1

我目前正在使用 Talend Studio,在我们的一个项目中,我们需要将 netty-all 库从版本 4.1.68 更新到 4.1.96。导入较新的 jar 文件后,我们发现 4.1.96 版本明显小于之前的版本。因此,我们遇到了一系列 ClassNotFoundException 错误。

为了解决这些问题,我们必须手动导入几个特定的 Netty 依赖项,例如 netty-transport 和 netty-resolver。这种方法感觉很麻烦,我想知道是否有更有效的方法来处理这个更新。

具体来说,我有两个问题:

有没有一种方法可以生成包含所有必要依赖项(一个 fat jar)的 netty-all 4.1.96 jar 文件? 如果上述解决方案不可行或最优,哪些替代方法可以更有效地更新我们 Talend Studio 项目中的 Netty 库? 如果有 Netty 和 Talend Studio 经验的人士提供任何指导或见解,我们将不胜感激。谢谢!

java maven dependencies dependency-management
1个回答
0
投票

您可以从这里下载 targ.gz 文件 - https://netty.io/downloads.html.

在“all”文件夹内,通过在

plugins
部分添加此代码片段来编辑 pom.xml -

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

然后运行-

mvn clean package 

您需要的罐子将在

all/target
内创建。它会有一个前缀,如 *
-all-dependencies.jar

© www.soinside.com 2019 - 2024. All rights reserved.