管理在运行时从类路径加载数据的Java类的数据依赖性

Mar*_*ast 9 java build-automation dependencies annotations

管理类路径中存在的数据文件的Java类依赖关系的最简单方法是什么?

更具体地说:
如何注释数据依赖性?也许使用Java注释(例如@Data)?或者更确切地说,在构建脚本或属性文件中构建条目?是否有构建工具来集成和评估此类信息(Ant,Scons,...)?你有例子吗?

请考虑以下场景:
几行Ant从我的源创建一个Jar,其中包含在类路径中找到的所有内容.然后jarjar用于删除所有不必执行的.class文件,比如,类Foo.问题是Bar类所依赖的所有数据文件仍然存在于Jar中.但是,理想的部署脚本会识别出,只有类别Bar所依赖的数据文件才能被删除,而必须保留类Foo所依赖的数据文件.

任何提示?

Sim*_*olt 0

我认为您描述的系统不存在通用解决方案,但是,我只是尝试使用ASM读取类上的注释,因为 jarjar 也使用它。通过这种方式读取注释数据并不难(将 ClassVisitor 传递给 ClassReader 上的accept() 方法,并在visitAnnotation 回调中执行一些有用的操作)。这意味着您可以尝试将您的预期行为包含到 jarjar 中,也可以将其作为自定义步骤添加到构建过程中。