Java 在Gradle,我们应该如何同时瞄准Android和JRE?

Java 在Gradle,我们应该如何同时瞄准Android和JRE?,java,gradle,android-gradle-plugin,travis-ci,Java,Gradle,Android Gradle Plugin,Travis Ci,关于: 在Gradle构建的Java库的早期版本中,它依赖于单一版本的Guava,并且可以从Android上使用。从那时起,它将其构建/发布分为两种风格:JRE(JDK1.8)和Android(JDK1.7)。这是否意味着这个库现在也需要拆分成不同的风格并生成不同的二进制文件?或者一个SDK可以同时支持这两个,如果我们坚持JRE支持,它就足够了 如果答案是“更多口味”,那么有没有关于如何通过Gradle/Travis完成这些多个构建的指南 我是一个相当新的维护人员,一个Gradle新手,不做An

关于:

在Gradle构建的Java库的早期版本中,它依赖于单一版本的Guava,并且可以从Android上使用。从那时起,它将其构建/发布分为两种风格:JRE(JDK1.8)和Android(JDK1.7)。这是否意味着这个库现在也需要拆分成不同的风格并生成不同的二进制文件?或者一个SDK可以同时支持这两个,如果我们坚持JRE支持,它就足够了

如果答案是“更多口味”,那么有没有关于如何通过Gradle/Travis完成这些多个构建的指南

我是一个相当新的维护人员,一个Gradle新手,不做Android开发,所以我确定我不知道其中的微妙之处。看起来之前的Android支持是“它似乎不会破坏人们”,而不是明确的测试,我想改变这一点

找到的文档:

  • 格拉德尔
    • ,尽管我不确定这是否应该是一个包含额外Jar任务的单个项目
  • 特拉维斯
    • ,这目前还没有完成,任何事情都将是对股票JRE测试的补充
我们的总目标是:

如果您需要对JDK1.7或Android的支持,请使用Android版本

Android风格是JRE风格的一个子集,因此如果您的代码是基于Android风格构建的,那么您的用户可以替换JRE风格(通过声明对它的依赖),并且您的代码仍然可以工作

因此,我们建议根据Android的风格。(我们这样做是为了


如果您愿意,您可以发布自己库的多种风格。然而,我不推荐它。我们选择通过两次单独运行Maven来实现,但如果更简单的话,也可以在一次Maven(或Gradle)运行中实现。正如您所看到的,我们通过使用版本号来区分不同的口味,因为。

RE:testing:在番石榴中,我们运行到,IIRC一直支持到。(我是基于这样一个事实:Java6API
NavigableSet
,已经足够支持了。