为什么来自 maven repo 的库无法编译?
Why libraries from maven repo not compile?
我有一个有趣的任务是从项目仓库编译一些库。
我使用 mvn dependency:sources.
获取带有库源的 jar
我将 java 个文件解压缩到 src/main/java 文件夹。
我运行'maven clean install'
一些库可以编译,但有些不能 - 找不到一些包,因为它们不在源 jar 中,也不在库 pom.xml 中。为什么图书馆的作者会这样做?
例如尝试编译这个库:https://repo1.maven.org/maven2/edu/ucar/netcdf/4.2/
错误:包 ucar.unidata.util 不存在。我必须在哪里以及如何获得这个包裹?为什么作者不将其包含到 jar 或 pom 文件中?
问题很大,不仅这个库受到影响。
虽然我不明白你给出的具体错误,但让我声明一下,如果你只有源 jar 和 POM,通常不可能重建 jar .
很多东西可能会丢失,比如资源、测试和项目结构本身(如果它是一个多模块项目),一些 POM 是 "flattened",所以重要的插件调用等是已删除。
因此您需要习惯这可能有效也可能无效的事实。
通常,人们只是按原样使用罐子。如果出于某些原因(你没有透露,虽然我问过你两次)你需要从源代码编译,我可以(按此顺序):
寻找项目的 github/gitlab 页(通常在 POM 中给出,或者您可以在 google 中找到它)并从那里绘制项目。
Fiddle 使用源代码和 POM,直到您可以编译项目(就像处理任何损坏的项目一样)。这可能成功也可能不成功。
不要使用库,而是自己编写必要的东西。
我有一个有趣的任务是从项目仓库编译一些库。
我使用 mvn dependency:sources.
获取带有库源的 jar
我将 java 个文件解压缩到 src/main/java 文件夹。
我运行'maven clean install'
一些库可以编译,但有些不能 - 找不到一些包,因为它们不在源 jar 中,也不在库 pom.xml 中。为什么图书馆的作者会这样做?
例如尝试编译这个库:https://repo1.maven.org/maven2/edu/ucar/netcdf/4.2/
错误:包 ucar.unidata.util 不存在。我必须在哪里以及如何获得这个包裹?为什么作者不将其包含到 jar 或 pom 文件中?
问题很大,不仅这个库受到影响。
虽然我不明白你给出的具体错误,但让我声明一下,如果你只有源 jar 和 POM,通常不可能重建 jar .
很多东西可能会丢失,比如资源、测试和项目结构本身(如果它是一个多模块项目),一些 POM 是 "flattened",所以重要的插件调用等是已删除。
因此您需要习惯这可能有效也可能无效的事实。
通常,人们只是按原样使用罐子。如果出于某些原因(你没有透露,虽然我问过你两次)你需要从源代码编译,我可以(按此顺序):
寻找项目的 github/gitlab 页(通常在 POM 中给出,或者您可以在 google 中找到它)并从那里绘制项目。
Fiddle 使用源代码和 POM,直到您可以编译项目(就像处理任何损坏的项目一样)。这可能成功也可能不成功。
不要使用库,而是自己编写必要的东西。