【发布时间】:2012-01-03 08:05:32
【问题描述】:
我正在编写一个自定义工具来从我们的构建树构建 jar 文件。我们喜欢构建“最小” jar 文件,其中仅包含实际从“根”类(main() 所在的位置)引用的 .class 文件——依此类推,递归地遵循依赖关系。
过去,我们通过让javac 遵循源依赖关系来做到这一点,但这意味着要多次重新编译公共文件。 (我们从一个源代码树构建 60 或 70 个不同的应用程序 jar。)我正在编写一个新的构建系统,它只编译每个源文件一次,但这意味着我们需要通过解析 .class 文件来遵循依赖关系。
好消息是,我的代码可以满足我的需求。但我需要绝对确定我没有搞砸,即我想确保我正在构建内部一致的 jar 文件,其中“一致”意味着所有未解析的引用都可以通过我们已知的第三方 jar 之一。
所以理想情况下,我想要一个可以运行的 MagicTool
MagicTool \
--classpath commons-lang.jar:commons-collections.jar:[...etc...] \
myapp.jar
这将检查myapp.jar 中每个未解析的引用,并确保它可以被传递给--classpath 的第三方jar 之一解析。如果没有,请呕吐。
【问题讨论】:
标签: java jar dependencies classpath .class-file