微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Java JAR 文件打包到 R 包中:处理 R CRAN 检查期间的大小限制

如何解决将 Java JAR 文件打包到 R 包中:处理 R CRAN 检查期间的大小限制

我想通过 CRAN 发布一个 R 包。该包包含 R 代码和 Java 代码,它们都是我编写的。我将Java代码打包成JAR容器,JAR文件存放在inst/java/目录下,源代码存放在R包的java目录下。我使用我的包所依赖的 rJava 包中的高级函数访问我的 JAR 文件功能。我还将 JAR 文件作为独立软件单独发布给不同的用户群。到目前为止,一切都很好。

现在我想通过 CRAN 发布包,但是 CRAN 检查抛出一个注释:

N  checking installed package size ...
     installed size is  9.1Mb
     sub-directories of 1Mb or more:
       java   8.1Mb

这是因为我的 Java 程序依赖于其他以 JAR 文件形式打包到我的 JAR 文件中的开源软件(所以我的 JAR 文件一个 fat jar file)。例如,我在 Java 程序中访问 sqlite 数据库,为此我需要 sqlite JDBC JAR 程序,它大约有 7MB。

应该没有许可问题,因为 sqlite JDBC 代码是在与 GPL3 兼容的 Appache 2.0 许可下发布的,我计划在我的包中以适当的方式声明这一点。

但我担心 CRAN 团队会因为其嵌入的代码和驱动程序的大小而拒绝我的包。我在 CRAN 政策中没有找到关于嵌入式源代码(和编译代码)大小限制的任何内容,但也许我看得不够仔细——欢迎提供任何指针。我确实看到了一些关于数据大小限制的内容,这些数据通常存储在 inst/extdata 下,但我相信这不适用于我的情况,因为它既不是数据也不是存储在那个地方。如果 CRAN 政策中没有关于这种大小限制的内容,我如何摆脱 R CMD 检查中的注释?

我找到了类似问题 here 的另一个答案。建议似乎是在 zzz.R 文件中临时下载 JAR 文件;至少我认为这是推荐的,因为那里提供的链接似乎不包含实际代码,而只是一行读取 .h2o.downloadJar()。谁能确认这是包含大代码的官方 CRAN 政策?

我尝试了一个解决方案,在该解决方案中我在包安装期间下载 JAR 文件并将其存放在包的 inst/java/ 目录中。我希望安装程序会将新下载的 JAR 移动到库路径中包的 java/ 目录。但是文件没有被复制,所以我回到了原点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。