我准备了一些实用类。我计划将它们制作为 jar 并将其分发给所需的项目。
我的 util 类使用一些已经存在的以 jar 文件形式提供的自定义代码。
我的代码依赖于“MainUtil.jar”,内部依赖于 Java Servlet、Commons IO、Commons Codec 等等......
我的 POM 依赖项如下所示。
<dependency>
<groupId>com.solutions</groupId>
<artifactId>sol-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-policy</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>
当我打包我的罐子时,它看起来很好。
但是当我的 jar 用于使用这些我的 util 类的项目中时,我可能会看到一个奇怪的问题。
commonc-codec jar文件打包时不包含在工程包中。需要此通用编解码器的代码也失败了。
当我明确包含 commons-codec 依赖项时,一切正常。
我的困惑是,当我应该由 Maven 基于自定义 jar 文件的 POM 解决时,为什么要显式添加编解码器依赖项。以及为什么这个问题只发生在 commons-codec 上而不是其他依赖项上。