是否可以手动编辑settings.gradle文件?

时间:2015-12-16 09:10:04

标签: android cordova gradle build.gradle cordova-plugins

在Cordova项目中,我有一个文件settings.gradle,它看起来像:

// GENERATED FILE - DO NOT EDIT
include ":"
include ":CordovaLib"

然而,手动我想编辑文件并使其看起来像:

// GENERATED FILE - DO NOT EDIT
include ":"
include ":CordovaLib"
include 'manager-A'
project(':manager-A').projectDir = new File('libs/Manager-A')
include 'manager-B'
project(':manager-B').projectDir = new File('libs/Manager-B')

上面的脚本看起来不错,可以使用Android studio成功构建。但是,当我尝试执行命令行:cordova build android时,它无法构建。

错误是' manager-A'和'经理-B'我手动包含的内容无法通过命令行找到。检查后,结果发现我手动编辑的文件已重新生成,并变为:

// GENERATED FILE - DO NOT EDIT
include ":"
include ":CordovaLib"

我想询问是否可以手动编辑文件,并且可以使用命令行构建,如上所述:cordova build android。

非常感谢任何输入!

3 个答案:

答案 0 :(得分:3)

是的,我正在寻求解决同样的问题,并从npm cordova-blinkup-plugin's Page找到了以下解决方案。您可以使用as:
编辑设置  1.打开路径/到/ project / platforms / android / cordova / lib / build.js
 2.编辑fs.writeFileSync()功能(第273行):

// Write the settings.gradle file.
fs.writeFileSync(path.join(projectPath, 'settings.gradle'),
'// GENERATED FILE - DO NOT EDIT\n' +
'include ":"\n' + settingsGradlePaths.join('') +
'include ":customProject1" +
'include ":customProject2"');

我希望这会有所帮助。

更新,如另一个答案所示,在较新版本的Cordova中,您可能会获得文件 /path/to/project/platforms/android/cordova/lib/builders/GradleBuilder.js

答案 1 :(得分:0)

我找到了一种在setting.gradle文件中添加自定义包含的更好方法。

制作文件project.properties并添加以下行:

target=android-22
android.library.reference.1=CordovaLib
android.library.reference.2=manager-A
android.library.reference.3=manager-B

现在运行cordova build android。这将在您的setting.gradle文件中输入。

这回答了如何包含模块的部分问题。但是如何添加如下的库仍需要更好的方法:

project(':manager-A').projectDir = new File('libs/Manager-A')

可以通过修改build.js来完成(Sopheak Mongkul建议)。我不推荐,但在你得到更好的解决方案之前它是好的。

答案 2 :(得分:0)

@ ankibalyan答案的更新: 我在 path / to / project / platforms / android / cordova / lib / builders / GradleBuilder.js 中找到了该函数,以防万一有人再需要它:)