我目前正在使用 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 经验的人士提供任何指导或见解,我们将不胜感激。谢谢!
您可以从这里下载 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
。