如何防止Cordova构建命令自动生成设置



我已经创建了一个自定义设置的Cordova应用程序。Gradle如下:

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

和在构建中。gradle,我可以把它称为:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    debugCompile project(path: "CordovaLib", configuration: "debug")
    releaseCompile project(path: "CordovaLib", configuration: "release")
    // SUB-PROJECT DEPENDENCIES END
    compile project(':manager')
}

然而,当我执行命令'cordova build android'时,文件设置。Gradle会自动生成一个默认设置,如下所示:

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

因此,由于无法找到我在settings.gradle中定义的模块'manager',构建总是失败。

我想知道是否有任何方法可以防止构建命令复制自定义设置。gradle文件。

今天我遇到了同样的问题,我花了几个小时发现我们可以通过修改project.properties

来解决这个问题

步骤如下:

步骤1。编辑/使project.properties在根目录中,并在CordovaLib之后添加您的模块作为库参考:

target=android-25
android.library.reference.1=CordovaLib
android.library.reference.2=libraryModule1
android.library.reference.3=libraryModule2

步骤2。执行命令cordova build android。这将在setting.gradle文件中创建一个条目。

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

同样你的应用程序build.gradle看起来像这样:

dependencies {
    ----
   // SUB-PROJECT DEPENDENCIES START
    debugCompile(project(path: "CordovaLib", configuration: "debug"))
    releaseCompile(project(path: "CordovaLib", configuration: "release"))
    debugCompile(project(path: "libraryModule1", configuration: "debug"))
    releaseCompile(project(path: "libraryModule1", configuration: "release"))
    debugCompile(project(path: "libraryModule2", configuration: "debug"))
    releaseCompile(project(path: "libraryModule2", configuration: "release"))
    ----
    // SUB-PROJECT DEPENDENCIES END
}

对于project(':manager').projectDir = new File('libs/ConnectManager')这种设置,我发现没有简单的方法,但你可以通过这种方式实现:

步骤1。/道路//项目/平台/android/科尔多瓦/lib/建筑商/GradleBuilder.js

步骤2。编辑fs.writeFileSync()函数(Line-100)

  // Write the settings.gradle file.
fs.writeFileSync(path.join(this.root, 'settings.gradle'),
    '// GENERATED FILE - DO NOT EDITn' +
    'include ":"n' + settingsGradlePaths.join('')+ "'include :"+libraryModule1+" n'+ 'include :"+libraryModule2+"');
// Update dependencies within build.gradle.

最新更新