Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从大型java项目中提取模块_Java_Maven_Weka - Fatal编程技术网

从大型java项目中提取模块

从大型java项目中提取模块,java,maven,weka,Java,Maven,Weka,最近,我正在使用weka(一个开源数据挖掘软件)做一些分类工作。我发现随机森林算法非常适合我的目标,并且达到了很高的精度。所以我想提取随机林模块,忽略其他不相关模块。查找RandomForst.java引用的所有java类是非常繁琐的。所以我想写一个程序来自动提取RandomForst.java及其相关类。 首先,我使用java类的“导入”信息来查找类依赖关系,但它无法查找同一个包的依赖关系。 我不确定Maven是否能帮我找到依赖关系。 你有什么想法吗?谢谢。你可以使用Maven Shade插件

最近,我正在使用weka(一个开源数据挖掘软件)做一些分类工作。我发现随机森林算法非常适合我的目标,并且达到了很高的精度。所以我想提取随机林模块,忽略其他不相关模块。查找RandomForst.java引用的所有java类是非常繁琐的。所以我想写一个程序来自动提取RandomForst.java及其相关类。 首先,我使用java类的“导入”信息来查找类依赖关系,但它无法查找同一个包的依赖关系。 我不确定Maven是否能帮我找到依赖关系。
你有什么想法吗?谢谢。

你可以使用Maven Shade插件创建一个uber JAR,并要求它最小化JAR。这会生成一个只包含你使用的类的JAR。

为此,我使用了Maven Shade插件和Proguard插件的组合。第一个插件将库合并到一个uber JAR中。第二个插件是e可以用来切断项目中未使用的所有类:。Proguard是一个模糊处理程序,它几乎可以切断任何东西,即未使用的接口或方法,因此需要准确地使用它。

为什么不按原样使用整个库?这是一种非常优越的方法,因为您不必担心再次使用它来完成所有这些工作当有新版本/错误修复可用时。还要注意,此库是根据GPL许可证发布的。通过修改该产品并将其合并到您的软件中,您的软件也将受制于此许可证。谢谢!实际上,我想将其放在Android上,它太大了,无法使用整个库。非常感谢!我已经尝试过了d以最小化JAR。但这对我不起作用。与RandomForst.java不相关的类(例如J48.java)仍然在JAR中。您能给我一些设置pom.xml的进一步信息吗。