mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-22 00:32:55 +08:00
CB-11244: Found bug where the gradle subproject changes weren't actually getting written to the correct gradle file
This commit is contained in:
parent
3ba00f91bb
commit
f50ca85a95
@ -117,6 +117,10 @@ StudioBuilder.prototype.prepBuildFiles = function () {
|
|||||||
var pluginBuildGradle = path.join(this.root, 'cordova', 'lib', 'plugin-build.gradle');
|
var pluginBuildGradle = path.join(this.root, 'cordova', 'lib', 'plugin-build.gradle');
|
||||||
var propertiesObj = this.readProjectProperties();
|
var propertiesObj = this.readProjectProperties();
|
||||||
var subProjects = propertiesObj.libs;
|
var subProjects = propertiesObj.libs;
|
||||||
|
|
||||||
|
// Check and copy the gradle file into the subproject
|
||||||
|
// Called by the loop before this function def
|
||||||
|
|
||||||
var checkAndCopy = function (subProject, root) {
|
var checkAndCopy = function (subProject, root) {
|
||||||
var subProjectGradle = path.join(root, subProject, 'build.gradle');
|
var subProjectGradle = path.join(root, subProject, 'build.gradle');
|
||||||
// This is the future-proof way of checking if a file exists
|
// This is the future-proof way of checking if a file exists
|
||||||
@ -127,6 +131,7 @@ StudioBuilder.prototype.prepBuildFiles = function () {
|
|||||||
shell.cp('-f', pluginBuildGradle, subProjectGradle);
|
shell.cp('-f', pluginBuildGradle, subProjectGradle);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (var i = 0; i < subProjects.length; ++i) {
|
for (var i = 0; i < subProjects.length; ++i) {
|
||||||
if (subProjects[i] !== 'CordovaLib') {
|
if (subProjects[i] !== 'CordovaLib') {
|
||||||
checkAndCopy(subProjects[i], this.root);
|
checkAndCopy(subProjects[i], this.root);
|
||||||
@ -154,6 +159,7 @@ StudioBuilder.prototype.prepBuildFiles = function () {
|
|||||||
var root = this.root;
|
var root = this.root;
|
||||||
var insertExclude = function (p) {
|
var insertExclude = function (p) {
|
||||||
var gradlePath = path.join(root, p, 'build.gradle');
|
var gradlePath = path.join(root, p, 'build.gradle');
|
||||||
|
console.log("Gradle path for writing:" + gradlePath);
|
||||||
var projectGradleFile = fs.readFileSync(gradlePath, 'utf-8');
|
var projectGradleFile = fs.readFileSync(gradlePath, 'utf-8');
|
||||||
if (projectGradleFile.indexOf('CordovaLib') !== -1) {
|
if (projectGradleFile.indexOf('CordovaLib') !== -1) {
|
||||||
depsList += '{\n exclude module:("CordovaLib")\n }\n';
|
depsList += '{\n exclude module:("CordovaLib")\n }\n';
|
||||||
@ -174,6 +180,7 @@ StudioBuilder.prototype.prepBuildFiles = function () {
|
|||||||
[/^\/?extras\/android\/support\/(.*)$/, 'com.android.support:support-$1:+'],
|
[/^\/?extras\/android\/support\/(.*)$/, 'com.android.support:support-$1:+'],
|
||||||
[/^\/?google\/google_play_services\/libproject\/google-play-services_lib\/?$/, 'com.google.android.gms:play-services:+']
|
[/^\/?google\/google_play_services\/libproject\/google-play-services_lib\/?$/, 'com.google.android.gms:play-services:+']
|
||||||
];
|
];
|
||||||
|
|
||||||
propertiesObj.systemLibs.forEach(function (p) {
|
propertiesObj.systemLibs.forEach(function (p) {
|
||||||
var mavenRef;
|
var mavenRef;
|
||||||
// It's already in gradle form if it has two ':'s
|
// It's already in gradle form if it has two ':'s
|
||||||
@ -193,13 +200,20 @@ StudioBuilder.prototype.prepBuildFiles = function () {
|
|||||||
}
|
}
|
||||||
depsList += ' compile "' + mavenRef + '"\n';
|
depsList += ' compile "' + mavenRef + '"\n';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
console.log("Dependency list");
|
||||||
|
console.log(depsList);
|
||||||
buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + depsList + ' $2');
|
buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + depsList + ' $2');
|
||||||
var includeList = '';
|
var includeList = '';
|
||||||
|
|
||||||
|
|
||||||
propertiesObj.gradleIncludes.forEach(function (includePath) {
|
propertiesObj.gradleIncludes.forEach(function (includePath) {
|
||||||
includeList += 'apply from: "' + includePath + '"\n';
|
includeList += 'apply from: "' + includePath + '"\n';
|
||||||
});
|
});
|
||||||
buildGradle = buildGradle.replace(/(PLUGIN GRADLE EXTENSIONS START)[\s\S]*(\/\/ PLUGIN GRADLE EXTENSIONS END)/, '$1\n' + includeList + '$2');
|
buildGradle = buildGradle.replace(/(PLUGIN GRADLE EXTENSIONS START)[\s\S]*(\/\/ PLUGIN GRADLE EXTENSIONS END)/, '$1\n' + includeList + '$2');
|
||||||
fs.writeFileSync(path.join(this.root, 'build.gradle'), buildGradle);
|
//This needs to be stored in the app gradle, not the root grade
|
||||||
|
fs.writeFileSync(path.join(this.root, 'app', 'build.gradle'), buildGradle);
|
||||||
};
|
};
|
||||||
|
|
||||||
StudioBuilder.prototype.prepEnv = function (opts) {
|
StudioBuilder.prototype.prepEnv = function (opts) {
|
||||||
|
Loading…
Reference in New Issue
Block a user