PDFBox 2.0.4 是 Apache PDFBox 项目的一个版本,它是一个用于处理 PDF 文档的 Java 库。当你从官方网站下载 PDFBox 2.0.4 和从 Maven 仓库下载时,可能会遇到 JAR 文件不同的情况。这通常是由于以下几个原因造成的:
当你从 PDFBox 的官方网站下载 PDFBox 2.0.4 时,你通常会得到一个包含了所有必要组件的 "fat" JAR 文件,也被称为 "uber-jar" 或 "shadow-jar"。这种 JAR 文件包含了 PDFBox 库本身以及它所依赖的所有第三方库。这样的 JAR 文件方便在没有构建工具的情况下直接使用。
Maven 仓库中的 JAR 文件通常是 "thin" JAR 文件,只包含 PDFBox 库本身的代码,而不包含其依赖项。这是因为 Maven 的设计理念是将依赖管理交给 Maven 本身,而不是将所有东西打包到一个 JAR 文件中。当你在 Maven 项目中声明对 PDFBox 2.0.4 的依赖时,Maven 会自动下载 PDFBox 库以及其所有列在 pom.xml
文件中的依赖项。
在你的 pom.xml
文件中添加 Shadow 插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.apache.pdfbox.PDFBox</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后运行 mvn clean package
来构建项目,这将生成一个包含了所有依赖的 "fat" JAR 文件。
总之,从不同来源下载的 JAR 文件可能会有所不同,这主要是因为它们包含了不同程度的依赖项和其他可能的构建产物。
领取专属 10元无门槛券
手把手带您无忧上云