forked from github/cordova-android
CB-9971: Suppressed unwanted java stderr output when running gradle wrapper
this closes #388
This commit is contained in:
parent
3ff32092a3
commit
540929c6a0
@ -37,7 +37,7 @@ var TEMPLATE =
|
|||||||
function GradleBuilder (projectRoot) {
|
function GradleBuilder (projectRoot) {
|
||||||
GenericBuilder.call(this, projectRoot);
|
GenericBuilder.call(this, projectRoot);
|
||||||
|
|
||||||
this.binDirs = {gradle: this.binDirs.gradle};
|
this.binDirs = { gradle: this.binDirs.gradle };
|
||||||
}
|
}
|
||||||
|
|
||||||
util.inherits(GradleBuilder, GenericBuilder);
|
util.inherits(GradleBuilder, GenericBuilder);
|
||||||
@ -73,9 +73,12 @@ GradleBuilder.prototype.runGradleWrapper = function (gradle_cmd) {
|
|||||||
var gradlePath = path.join(this.root, 'gradlew');
|
var gradlePath = path.join(this.root, 'gradlew');
|
||||||
var wrapperGradle = path.join(this.root, 'wrapper.gradle');
|
var wrapperGradle = path.join(this.root, 'wrapper.gradle');
|
||||||
if (fs.existsSync(gradlePath)) {
|
if (fs.existsSync(gradlePath)) {
|
||||||
// Literally do nothing, for some reason this works, while !fs.existsSync didn't on Windows
|
// Literally do nothing, for some reason this works, while !fs.existsSync didn't on Windows
|
||||||
} else {
|
} else {
|
||||||
return superspawn.spawn(gradle_cmd, ['-p', this.root, 'wrapper', '-b', wrapperGradle], {stdio: 'inherit'});
|
return superspawn.spawn(gradle_cmd, ['-p', this.root, 'wrapper', '-b', wrapperGradle], { stdio: 'pipe' })
|
||||||
|
.progress(function (stdio) {
|
||||||
|
suppressJavaOptionsInfo(stdio);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -219,33 +222,19 @@ GradleBuilder.prototype.build = function (opts) {
|
|||||||
var wrapper = path.join(this.root, 'gradlew');
|
var wrapper = path.join(this.root, 'gradlew');
|
||||||
var args = this.getArgs(opts.buildType === 'debug' ? 'debug' : 'release', opts);
|
var args = this.getArgs(opts.buildType === 'debug' ? 'debug' : 'release', opts);
|
||||||
|
|
||||||
return superspawn.spawn(wrapper, args, {stdio: 'pipe'}).progress(function (stdio) {
|
return superspawn.spawn(wrapper, args, { stdio: 'pipe' })
|
||||||
if (stdio.stderr) {
|
.progress(function (stdio) {
|
||||||
/*
|
suppressJavaOptionsInfo(stdio);
|
||||||
* Workaround for the issue with Java printing some unwanted information to
|
}).catch(function (error) {
|
||||||
* stderr instead of stdout.
|
if (error.toString().indexOf('failed to find target with hash string') >= 0) {
|
||||||
* This function suppresses 'Picked up _JAVA_OPTIONS' message from being
|
return check_reqs.check_android_target(error).then(function () {
|
||||||
* printed to stderr. See https://issues.apache.org/jira/browse/CB-9971 for
|
// If due to some odd reason - check_android_target succeeds
|
||||||
* explanation.
|
// we should still fail here.
|
||||||
*/
|
return Q.reject(error);
|
||||||
var suppressThisLine = /^Picked up _JAVA_OPTIONS: /i.test(stdio.stderr.toString());
|
});
|
||||||
if (suppressThisLine) {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
process.stderr.write(stdio.stderr);
|
return Q.reject(error);
|
||||||
} else {
|
});
|
||||||
process.stdout.write(stdio.stdout);
|
|
||||||
}
|
|
||||||
}).catch(function (error) {
|
|
||||||
if (error.toString().indexOf('failed to find target with hash string') >= 0) {
|
|
||||||
return check_reqs.check_android_target(error).then(function () {
|
|
||||||
// If due to some odd reason - check_android_target succeeds
|
|
||||||
// we should still fail here.
|
|
||||||
return Q.reject(error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return Q.reject(error);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GradleBuilder.prototype.clean = function (opts) {
|
GradleBuilder.prototype.clean = function (opts) {
|
||||||
@ -253,7 +242,7 @@ GradleBuilder.prototype.clean = function (opts) {
|
|||||||
var wrapper = path.join(this.root, 'gradlew');
|
var wrapper = path.join(this.root, 'gradlew');
|
||||||
var args = builder.getArgs('clean', opts);
|
var args = builder.getArgs('clean', opts);
|
||||||
return Q().then(function () {
|
return Q().then(function () {
|
||||||
return superspawn.spawn(wrapper, args, {stdio: 'inherit'});
|
return superspawn.spawn(wrapper, args, { stdio: 'inherit' });
|
||||||
}).then(function () {
|
}).then(function () {
|
||||||
shell.rm('-rf', path.join(builder.root, 'out'));
|
shell.rm('-rf', path.join(builder.root, 'out'));
|
||||||
|
|
||||||
@ -268,6 +257,25 @@ GradleBuilder.prototype.clean = function (opts) {
|
|||||||
|
|
||||||
module.exports = GradleBuilder;
|
module.exports = GradleBuilder;
|
||||||
|
|
||||||
|
function suppressJavaOptionsInfo (stdio) {
|
||||||
|
if (stdio.stderr) {
|
||||||
|
/*
|
||||||
|
* Workaround for the issue with Java printing some unwanted information to
|
||||||
|
* stderr instead of stdout.
|
||||||
|
* This function suppresses 'Picked up _JAVA_OPTIONS' message from being
|
||||||
|
* printed to stderr. See https://issues.apache.org/jira/browse/CB-9971 for
|
||||||
|
* explanation.
|
||||||
|
*/
|
||||||
|
var suppressThisLine = /^Picked up _JAVA_OPTIONS: /i.test(stdio.stderr.toString());
|
||||||
|
if (suppressThisLine) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
process.stderr.write(stdio.stderr);
|
||||||
|
} else {
|
||||||
|
process.stdout.write(stdio.stdout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function isAutoGenerated (file) {
|
function isAutoGenerated (file) {
|
||||||
return fs.existsSync(file) && fs.readFileSync(file, 'utf8').indexOf(MARKER) > 0;
|
return fs.existsSync(file) && fs.readFileSync(file, 'utf8').indexOf(MARKER) > 0;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
var Gradle_builder = require('../../../bin/templates/cordova/lib/builders/GradleBuilder.js');
|
var Gradle_builder = require('../../../bin/templates/cordova/lib/builders/GradleBuilder.js');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
var Q = require('q');
|
||||||
var superspawn = require('cordova-common').superspawn;
|
var superspawn = require('cordova-common').superspawn;
|
||||||
var builder;
|
var builder;
|
||||||
|
|
||||||
@ -8,7 +9,8 @@ describe('Gradle Builder', function () {
|
|||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
spyOn(fs, 'existsSync').and.returnValue(true);
|
spyOn(fs, 'existsSync').and.returnValue(true);
|
||||||
builder = new Gradle_builder('/root');
|
builder = new Gradle_builder('/root');
|
||||||
spyOn(superspawn, 'spawn');
|
var deferred = Q.defer();
|
||||||
|
spyOn(superspawn, 'spawn').and.returnValue(deferred.promise);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('runGradleWrapper method', function () {
|
describe('runGradleWrapper method', function () {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user