Repository: cordova-android Updated Branches: refs/heads/master 3bfeda4a3 -> 1af5ade39
CB-12169: Check for build directory before running a clean Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/5017e230 Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/5017e230 Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/5017e230 Branch: refs/heads/master Commit: 5017e2302b90f8555bb105dc5a90b0483b384280 Parents: 3bfeda4 Author: Joe Bowser <[email protected]> Authored: Mon Nov 21 14:41:14 2016 -0800 Committer: Joe Bowser <[email protected]> Committed: Mon Nov 21 14:46:09 2016 -0800 ---------------------------------------------------------------------- bin/templates/cordova/Api.js | 8 ++++++-- bin/templates/cordova/lib/AndroidProject.js | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-android/blob/5017e230/bin/templates/cordova/Api.js ---------------------------------------------------------------------- diff --git a/bin/templates/cordova/Api.js b/bin/templates/cordova/Api.js index 92f9565..8e4711c 100644 --- a/bin/templates/cordova/Api.js +++ b/bin/templates/cordova/Api.js @@ -72,6 +72,7 @@ function Api(platform, platformRootDir, events) { defaultConfigXml: path.join(self.root, 'cordova/defaults.xml'), strings: path.join(self.root, 'res/values/strings.xml'), manifest: path.join(self.root, 'AndroidManifest.xml'), + build: path.join(self.root, 'build'), // NOTE: Due to platformApi spec we need to return relative paths here cordovaJs: 'bin/templates/project/assets/www/cordova.js', cordovaJsSrc: 'cordova-js-src' @@ -241,11 +242,12 @@ Api.prototype.addPlugin = function (plugin, installOptions) { // Do some basic argument parsing var opts = {}; - // Skip cleaning prepared files when not invoking via cordova CLI. + // Skip cleaning prepared files when not invoking via cordova CLI. opts.noPrepare = true; - if(!(AndroidStudio.isAndroidStudioProject(self.root))) + if(!AndroidStudio.isAndroidStudioProject(self.root) && !project.isClean()) { return self.clean(opts); + } }) .then(function () { return PluginManager.get(self.platform, self.locations, project) @@ -396,6 +398,8 @@ Api.prototype.clean = function(cleanOptions) { }); }; + + /** * Performs a requirements check for current platform. Each platform defines its * own set of requirements, which should be resolved before platform can be http://git-wip-us.apache.org/repos/asf/cordova-android/blob/5017e230/bin/templates/cordova/lib/AndroidProject.js ---------------------------------------------------------------------- diff --git a/bin/templates/cordova/lib/AndroidProject.js b/bin/templates/cordova/lib/AndroidProject.js index 1fc3bdf..c55ee6c 100644 --- a/bin/templates/cordova/lib/AndroidProject.js +++ b/bin/templates/cordova/lib/AndroidProject.js @@ -197,5 +197,14 @@ AndroidProject.prototype.getUninstaller = function (type) { return pluginHandlers.getUninstaller(type); }; +/* + * This checks if an Android project is clean or has old build artifacts + */ + +AndroidProject.prototype.isClean = function() { + var build_path = path.join(this.projectDir, "build"); + //If the build directory doesn't exist, it's clean + return !(fs.existsSync(build_path)); +}; module.exports = AndroidProject; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
