3

我有一个目录,其中包含数百个由先前编译构建的类文件。假设我有一个类,它只依赖于那些生成的类文件的一小部分。是否可以创建一个仅具有给定类的依赖项的 JAR?

编辑:请注意,我不是在谈论库级别的依赖项(即 JAR)。当我提到上面的依赖关系时,我指的是由 A 类调用 B 类产生的那种依赖关系。也许一个例子会很好。想象一下,我的项目中有以下类。

public class A {
    B bField;
}

public class B {
    C cField;
}

public class C {
    B bField;
}

现在假设我想用 B 类构建一个 JAR,那么 JAR 还需要包含 C 的类文件,因为一个依赖于另一个。如果我想从 A 类构建一个 JAR,那么所有三个类都将包括在内。有没有办法检查这个依赖链并用结果构建一个 JAR?

4

2 回答 2

3

有几种产品可以做到这一点,包括ProGuard

危险在于,如果没有详尽的运行时分析,或者对代码及其使用的任何框架没有很好的理解,如果通过反射实例化了某些类,它们可能会被遗漏。插件系统、依赖注入、脚本等都会干扰静态分析的准确性。

于 2012-06-01T20:53:37.050 回答
0

是的,有可能。您可以使用要包含的类列表创建一个文件,并将该文件传递给 jar 命令。详细信息记录在这里

于 2012-06-01T20:40:15.983 回答