将 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...