Java依赖关系图

问题:

我有一个 2000 年代初期的大型、陈旧、杂乱无章的 Java 项目。

该项目是使用ant构建的。

没有依赖管理,一切都是通过在本地存储 jars 来处理的。

compilepackage目标构建脚本非常广阔,而且大多只是编译和打包随后整个项目中,根据需要洗牌周围环境中的特定属性文件。

在项目生命周期的某个时刻,引入了一些单独的构建目标,以启用管理工具等的 Web 界面。

然而,因为没有依赖管理,并且因为构建脚本不是很有选择性,当前的过程是打包整个 web 应用程序并将它与管理工具一起部署,两者之间的差异列表非常少。

我目前正着手尝试通过弃用和重构 ant 构建文件并通过 CI 工具引入构建/部署自动化来使代码库保持理智。

作为这项工作下一阶段的一部分,我想尝试重构项目结构和构建文件,以便只打包需要打包在管理工具和生产 Web 应用程序的 war 文件中的内容,并希望,只编译一个pass而不是几个pass。

为了解决这个问题,我似乎需要为给定的 JSP 构建一个依赖项列表,或者至少是一个 Java 类列表。手动跑腿来追踪一些东西对我来说几乎是不可能的,但项目的范围足够大,如果没有一些自动化的帮助,我没有希望在合理的时间范围内完成任务。

我还没有找到不涉及大量软件许可证或已经在使用 Maven 的项目的解决方案。

鉴于 Eclipse 可以从该项目中的任意源文件中获取任意方法,并在相应的文件系统上找到我的资源,这似乎不是一个无法解决的工程难题 -

是否存在免费(如在啤酒中,理想情况下也如在软件中)为这样的项目生成依赖图(或类似)的解决方案?

如果做不到这一点,堆栈溢出的好公民能否建议一种不同的方法来解决我可能没有考虑过的问题?


湖上湖
浏览 177回答 1
1回答

牛魔王的故事

我看到这个问题被认为是重复的。希望提升某人未来的谷歌搜索结果:jdeps 将递归打印给定类名、类文件或 jar 到标准输出的依赖项,可能是解决这个确切问题的成本最低的解决方案,并且预先打包在 JDK 8 及更高版本中。我发现在有问题的实用程序存在之前被问到的一个 4 年前的问题,在收到 0 个赞成票的答案上,深埋了 10 个答案,因此,我觉得在此处重新发布它可能对未来具有潜在价值网站的用户。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java