问题:
我有一个21世纪初的大型、陈旧、杂乱无章的java项目。
该项目是使用ant构建的。
没有依赖管理,一切都是通过在本地存储jars来处理的。
构建脚本的compile
和package
目标非常广泛,大多数只是编译并随后打包整个项目,根据需要打乱特定于环境的属性文件。
在项目生命周期中的某个时刻,引入了一些单独的构建目标,以便为管理工具和类似工具启用web界面。
但是,因为没有依赖项管理,而且buildscript不是很有选择性,所以当前的流程是打包整个web应用程序,并将其与管理工具一起部署,两者之间的差异非常小。
我目前正在尝试通过弃用和重构ant构建文件,并通过CI工具引入构建/部署自动化,从而给代码库带来理智。
作为这项工作的下一阶段的一部分,我想尝试重构项目结构和构建文件,以便分别将其打包到管理工具和生产web应用程序的war文件中,并且希望只编译一遍而不是几遍。
为了解决这个问题,我似乎需要为给定的JSP构建一个依赖项列表,或者至少构建一个java类列表。手动跑腿来追踪一些东西对我来说很难,但这个项目的范围足够大,如果没有一些自动化的帮助,我就没有希望在合理的时间框架内完成任务。
我还没有找到一个解决方案,既不涉及庞大的软件许可证,也不涉及已经在使用Maven的项目。
鉴于Eclipse可以从该项目中的任意源文件中获取任意方法,并在相应的文件系统上为我找到相应的资源,似乎这不是一个无法解决的工程难题-
对于这样的项目,有没有免费的(比如啤酒,理想情况下也是软件)的解决方案来生成依赖图(或者类似的)?
如果做不到这一点,堆栈溢出的好市民能为我的问题提出一种我可能没有考虑过的不同方法吗?
发布于 2018-10-27 04:47:49
我看到这个问题被认为是重复的。
希望提升某人未来的谷歌搜索结果:
jdeps
将递归地将给定类名、类文件或jar的依赖项打印到标准输出,它可能是解决此问题的成本最低的解决方案,并且预打包在JDK8或更高版本中。
我发现,在一个4年前的问题上,我深埋了10个答案,这个问题是在有问题的实用程序出现之前提出的,而这个答案得到了0个赞成票,所以,我觉得在这里重新发布它可能对网站的未来用户有潜在的价值。
https://stackoverflow.com/questions/53014342
复制相似问题