如何设置完全离线的 Cordova 构建?

2024-04-03

我使用 Cordova 创建了一个测试项目cordova create hello com.example.hello HelloWorld ; cd hello ; cordova platform add android.

我第一次用它构建它cordova build,它下载 Gradle,然后我认为是一堆 Maven 文件,差不多有 200 个。这些似乎已安装到~/.gradle但我不确定那是唯一的地方。示例输出:

$ cordova build
ANDROID_HOME=/opt/android
JAVA_HOME=/usr/lib/jvm/java-8-oracle/
Subproject Path: CordovaLib
Downloading https://services.gradle.org/distributions/gradle-3.3-all.zip
...............
Unzipping /home/ubuntu/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3-all.zip to /home/ubuntu/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9
Set executable permissions for: /home/ubuntu/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3/bin/gradle
Starting a Gradle Daemon (subsequent builds will be faster)
Download https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.3/gradle-2.2.3.pom
Download https://jcenter.bintray.com/com/android/tools/build/gradle-core/2.2.3/gradle-core-2.2.3.pom
Download https://jcenter.bintray.com/com/android/tools/build/builder/2.2.3/builder-2.2.3.pom
Download https://jcenter.bintray.com/com/android/tools/lint/lint/25.2.3/lint-25.2.3.pom
(skip about 180 more lines here)
Download https://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar
Download https://repo1.maven.org/maven2/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.9.6.2.jar
Download https://repo1.maven.org/maven2/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.jar
The JavaCompile.setDependencyCacheDir() method has been deprecated and is scheduled to be removed in Gradle 4.0.
Incremental java compilation is an incubating feature.
The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.
:preBuild UP-TO-DATE
(build continues normally here)

现在,这可能很方便,但从拥有可重现的构建环境的角度来看绝对不是可取的。

如何设置 Cordova 进行完全离线构建?它会在第一个构建之后进行离线构建,还是仍然检查(例如)Gradle 更新?

我如何(以及在​​哪里)预安装所有内容cordova build寻找?有没有办法让 Cordova 将所有内容作为构建的单独步骤来安装,并作为安装的单独步骤来进行构建?

我可以将内容存档吗~/.gradle/一次,然后在进行构建之前将其解压(在同一台计算机上或不同的计算机上)并使该构建离线运行?我该如何移动~/.gradle/到(例如)Cordova 项目的子目录?

这是在 Ubuntu 16.04 的全新安装上,从 nodesource 安装了 Node 和 npm。版本:

$ cordova --version
7.0.1
$ npm --version
3.10.10
$ node --version
v6.10.3

听起来很棘手。我想到的一种可能性是:你可以使用docker https://www.docker.com/图像与 android 和 cordova 已经安装在您的机器上,无需互联网。您会发现许多像这样的开源图像:docker-科尔多瓦 https://github.com/oren/docker-cordova当搜索例如“科尔多瓦码头图像”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置完全离线的 Cordova 构建? 的相关文章

随机推荐

  • 输入类型标签属性的有效顺序

    我知道这是非常基本的问题 希望不是那么重要 但我想知道答案 请不要建议仅参考链接 我们每天都会面对
  • laravel 5.2 - 搜索功能

    我希望在我的网站上进行自定义搜索 这是 MySQL 搜索 选择 从MyDB MyTable WHERE id喜欢 MySearch 或firstname喜欢 MySearch 或lastname喜欢 MySearch 或email喜欢 My
  • 有没有办法将外部函数内联到 EF Linq 查询中?

    假设我有一个这样的函数 var filterValue GetCurrentFilter state 然后是 EF 查询 var result context EntitySet Where x gt x column gt filterV
  • 以富文本形式 Markdown 到剪贴板

    在 Windows 上使用 Python 我尝试获取一个 Markdown 文件并将其作为富文本粘贴到我的剪贴板中 大部分拼图都很简单 将 Markdown 解析为 HTML 没有问题 通过 TKinter 将内容放入剪贴板 是的 但这是我
  • 如何限制长表中 \multicolumn 单元格的大小?

    我在 LaTeX 中有一个非常长的表格 跨越多个页面 并且 就像现在一样 对于页面来说也太宽了 我正在使用 longtable 包 其中每个列的宽度都由p width 命令 问题是 大多数行包含多列调用 因此不遵守前导码p width 命令
  • Oracle:指定对象类型列的默认值

    我有一个带有无参数构造函数的对象类型 但是当我将其指定为该类型的列的默认值时 我收到 ORA 00904 无效标识符错误 Example CREATE OR REPLACE TYPE test t AS OBJECT val NUMBER
  • 将 CTE 应用于递归查询

    我正在尝试应用 CTE 和递归查询 数据库为 MariaDB 10 2 或更高版本 业务规则如下 账户可以是控股账户 也可以是投资组合账户 控股由一定数量的货币组成 持股可以是活跃的也可以是非活跃的 一个投资组合包含零个或多个账户 并且这些
  • OkHTTPClient代理认证如何进行?

    问题 如何向 OkHTTP 添加授权代理 我知道 OkHTTP 的构建者是否支持代理 http square github io okhttp 3 x okhttp 虽然我很难设置一个 Given a Url and a base64 en
  • 加密 (cryptojs) - 解密 (erlang)

    我有一个使用 cryptoJS AES 加密的值 需要使用 Erlang 加密库进行解密 对我来说问题在于能够在 Erlang 中使用解密aes cbc 128 decrypt Key IVec Cipher 我想 我需要知道使用的 IVe
  • 错误“您的推送将发布私人电子邮件地址”

    我对 GitHub 很陌生VCS https en wikipedia org wiki Version control 当我尝试在 GitHub 上共享我的项目时 收到以下错误消息 Can t finish GitHub sharing
  • 使用 jQuery 替换字符

    我正在尝试从键盘上的所有文本框中删除逗号 我想出了下面的脚本 但它不起作用 谁能看到我做错了什么吗 NOTE 请原谅脚本中的 所以不会让我发布它 否则 您可能希望将整个代码块包装在文档就绪函数中 function input text ke
  • 不使用相关性直接在ASM中调用/跳转(x86)

    我正在将一个 C DLL 注入到游戏中 并且想将一个函数挂接到我自己的一些代码上 由于DLL每次都会映射到不同的位置 因此直接跳转和调用会更容易 另外 因为这是一个钩子 所以当我返回该函数时 我不想更改堆栈或寄存器 我声明一个 char 来
  • 是否有任何算法可以使循环赛安排具有每轮独特的组合?

    假设我有 10 个参与者的数组 1 2 3 4 5 6 7 8 9 10 假设一个联赛有10名参赛者 那么每个参赛者将与其他9名参赛者进行9场比赛 因此 每位参赛者将进行9轮单场比赛 例如 第一轮 1 2 3 4 5 6 7 8 9 10
  • 是否有 C++ 位域的可移植替代方案

    在许多情况下 尤其是在低级编程中 数据的二进制布局很重要 例如 硬件 驱动程序操作 网络协议等 在 C 中 我可以使用读 写任意二进制结构char 和按位运算 掩码和移位 但这是乏味且容易出错的 显然 我尝试限制这些操作的范围并将它们封装在
  • 季度的天数?

    我将如何实施dayNumber of quarter 例如 3 月 3 日 第一季度 应返回 62 31 一月 28 二月 3 三月 4 月 29 日 第二季度 应返回 29 到目前为止我的代码 int month getMonth dat
  • NSDateFormatter 无法设置 setTimeZone

    我想知道两个日期之间的差异 包括天 小时 分钟和秒 为此 我使用下面的代码 但它不起作用 void UpdateTableViewCellWithNSTimer NSString gameTime UIView inputView NSDa
  • 如何使用 C# MVC4 调用 $.ajax 中的错误函数?

    我有一个使用 C 的 MVC4 项目 在这个项目中 我的一个控制器有一个由 Ajax 函数调用的方法 HttpPost public string EditPackage int id string newPkgName try do lo
  • 锁定数据库记录以进行编辑

    我有一个 SQL Server 2008 数据库和一个 asp net 前端 我想在用户当前正在编辑记录但不确定哪种方法是最佳方法时实现锁定 我的想法是有一个isLocked记录的列 当用户拉出该记录时 它会设置为 true 这意味着所有其
  • 为 Sublime Text 2 的嵌入式 Python 解释器安装 IPython

    我正在尝试在 sublime 中安装 IpythonIntegration 包 我安装在 bash shell 中 最新的 ipython pyzmq pyside 然而 崇高控制台仍然给我一个错误 Reloading plugin hom
  • 如何设置完全离线的 Cordova 构建?

    我使用 Cordova 创建了一个测试项目cordova create hello com example hello HelloWorld cd hello cordova platform add android 我第一次用它构建它co