【发布时间】:2015-08-10 18:30:21
【问题描述】:
This post解释如何在项目的不同productFlavors中包含不同的依赖。
我这样做了,但现在我如何处理我自己的代码调用来自我项目的一种风格中不包含的 jar 的代码?
示例
admob.jar 有一个 Aaa.class 并且只包含在 free 风格中。当我编译 pro 风格时,它会失败,因为Aaa.class 不在类路径中。
我不想不使用反射(它效率低且耗时)。
有什么建议吗?
【问题讨论】:
This post解释如何在项目的不同productFlavors中包含不同的依赖。
我这样做了,但现在我如何处理我自己的代码调用来自我项目的一种风格中不包含的 jar 的代码?
示例
admob.jar 有一个 Aaa.class 并且只包含在 free 风格中。当我编译 pro 风格时,它会失败,因为Aaa.class 不在类路径中。
我不想不使用反射(它效率低且耗时)。
有什么建议吗?
【问题讨论】:
正如linked post 中提到的,您可以使用风味来包含不同的依赖项,但您也可以在风味中包含特定的 src 文件:
创建目录 src/pro/java/ 和 src/free/java/ 。
src/pro/java 中的所有源文件将仅使用为“pro”风格定义的依赖项以“pro”风格编译。
src/free/java 中的所有源文件将仅使用为“free”风格定义的依赖项以“free”风格编译。
现在假设您有一个java 源文件SomeClass.java 调用admob.jar 中的一些代码。您可以执行以下操作:
SomeClass.java 放入src/free/java/SomeClass.java
src/pro/java/SomeClass.java 中重复SomeClass.java
src/pro/java/SomeClass.java中删除所有对admob.jar的调用
提示:尝试以这样一种方式组织您的代码,将重复的类减少到严格的最低限度。
【讨论】: