问题:
从2000年代初期开始,我有一个大型的,杂乱无章的Java项目。
该项目是使用ant构建的。
没有依赖关系管理,一切都通过在本地存储jar来处理。
构建脚本的cy.window().then(win => {
const { axiosMain } = win
//... add interceptors here
}
和compile
目标非常广泛,并且大多只是编译并随后打包整个项目,并根据需要改组特定于环境的属性文件。
在项目生命周期的某个时候,引入了一些单独的构建目标,以启用用于管理工具等的Web界面。
但是,由于没有依赖项管理,并且由于buildscript的选择性不高,因此当前流程正在打包整个Web应用程序,并将其与管理工具一起部署,并且它们之间的差异非常小。二。
我目前正在尝试通过弃用和重构ant构建文件并通过CI工具引入构建/部署自动化来使代码库更加合理。
作为下一阶段工作的一部分,我想尝试重构项目结构和构建文件,以仅将需要打包的内容分别打包到管理工具和生产Web应用程序的war文件中,并且希望只编译一次而不是多次。
要解决此问题,似乎可能需要为给定的JSP构建一个依赖项列表,或者至少要构建一个Java类列表。手动做腿部动作来追踪某些东西并不在我身下,但是该项目的范围足够大,以至于没有一些自动协助,我就没有希望在合理的时间内完成任务。
我还没有找到一个解决方案,它不涉及庞大的软件许可,也不涉及已经在使用Maven的项目。
鉴于Eclipse可以从该项目中源代码的任意文件中采用任意方法,并在对应的文件系统上找到我的资源,看来这一定不是一个无法解决的工程难题-
是否存在免费的(例如在啤酒中,理想情况下也在软件中)解决方案来为此类项目生成依赖图(或类似方法)?
如果失败了,堆栈溢出的好公民是否可以针对我可能没有考虑过的问题提出不同的解决方法?
答案 0 :(得分:1)
我看到这个问题被认为是重复的。
希望增加某人将来的Google搜索结果:
jdeps
将递归地将给定类名,类文件或jar的依赖关系打印到stdout,这可能是解决此确切问题的成本最低的解决方案,并且已与JDK 8及更高版本一起预包装。 / p>
我发现,在存在该实用程序之前的一个已有4年历史的问题上,有10个答案被深埋了10个答案,因此,我觉得将其重新发布在这里很有可能网站的未来用户的价值。