Skip to content

Commit e83918b

Browse files
Merge pull request #3744 from NativeScript/vladimirov/fix-gradle-messages
fix: During all gradle operations "Gradle build" message is printed
2 parents fba5847 + bfe0aec commit e83918b

File tree

4 files changed

+32
-45
lines changed

4 files changed

+32
-45
lines changed

lib/definitions/project.d.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -436,16 +436,6 @@ interface IPlatformProjectService extends NodeJS.EventEmitter, IPlatformProjectS
436436
* Traverse through the production dependencies and find plugins that need build/rebuild
437437
*/
438438
checkIfPluginsNeedBuild(projectData: IProjectData): Promise<Array<any>>;
439-
440-
/**
441-
* Get gradle options the CLI generates when building project
442-
*/
443-
getBuildOptions(configurationFilePath?: string): Array<string>;
444-
445-
/**
446-
* Get gradle options the CLI generates when building project
447-
*/
448-
executeCommand(projectRoot: string, args: any, childProcessOpts?: any, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult>;
449439
}
450440

451441
interface ITestExecutionService {

lib/services/android-project-service.ts

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -308,15 +308,15 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
308308
}
309309

310310
public async buildProject(projectRoot: string, projectData: IProjectData, buildConfig: IBuildConfig): Promise<void> {
311-
const buildOptions = this.getGradleBuildOptions(buildConfig, projectData);
311+
const gradleArgs = this.getGradleBuildOptions(buildConfig, projectData);
312312
if (this.$logger.getLevel() === "TRACE") {
313-
buildOptions.unshift("--stacktrace");
314-
buildOptions.unshift("--debug");
313+
gradleArgs.unshift("--stacktrace");
314+
gradleArgs.unshift("--debug");
315315
}
316316
if (buildConfig.release) {
317-
buildOptions.unshift("assembleRelease");
317+
gradleArgs.unshift("assembleRelease");
318318
} else {
319-
buildOptions.unshift("assembleDebug");
319+
gradleArgs.unshift("assembleDebug");
320320
}
321321

322322
const handler = (data: any) => {
@@ -326,10 +326,14 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
326326
await attachAwaitDetach(constants.BUILD_OUTPUT_EVENT_NAME,
327327
this.$childProcess,
328328
handler,
329-
this.executeCommand(this.getPlatformData(projectData).projectRoot,
330-
buildOptions,
331-
{ stdio: buildConfig.buildOutputStdio || "inherit" },
332-
{ emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true }));
329+
this.executeCommand({
330+
projectRoot: this.getPlatformData(projectData).projectRoot,
331+
gradleArgs,
332+
childProcessOpts: { stdio: buildConfig.buildOutputStdio || "inherit" },
333+
spawnFromEventOptions: { emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true },
334+
message: "Gradle build..."
335+
})
336+
);
333337
}
334338

335339
private getGradleBuildOptions(settings: IAndroidBuildOptionsSettings, projectData: IProjectData): Array<string> {
@@ -348,7 +352,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
348352
return buildOptions;
349353
}
350354

351-
public getBuildOptions(configurationFilePath?: string): Array<string> {
355+
private getBuildOptions(configurationFilePath?: string): Array<string> {
352356
this.$androidToolsInfo.validateInfo({ showWarningsAsErrors: true, validateTargetSdk: true });
353357

354358
const androidToolsInfo = this.$androidToolsInfo.getToolsInfo();
@@ -607,14 +611,23 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
607611
}
608612

609613
public stopServices(projectRoot: string): Promise<ISpawnResult> {
610-
return this.executeCommand(projectRoot, ["--stop", "--quiet"], {stdio: "pipe"});
614+
return this.executeCommand({
615+
projectRoot,
616+
gradleArgs: ["--stop", "--quiet"],
617+
childProcessOpts: { stdio: "pipe" },
618+
message: "Gradle stop services..."
619+
});
611620
}
612621

613622
public async cleanProject(projectRoot: string, projectData: IProjectData): Promise<void> {
614623
if (this.$androidToolsInfo.getToolsInfo().androidHomeEnvVar) {
615-
const buildOptions = this.getGradleBuildOptions({ release: false }, projectData);
616-
buildOptions.unshift("clean");
617-
await this.executeCommand(projectRoot, buildOptions);
624+
const gradleArgs = this.getGradleBuildOptions({ release: false }, projectData);
625+
gradleArgs.unshift("clean");
626+
await this.executeCommand({
627+
projectRoot,
628+
gradleArgs,
629+
message: "Gradle clean..."
630+
});
618631
}
619632
}
620633

@@ -676,16 +689,18 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
676689
return versionInManifest;
677690
}
678691

679-
public async executeCommand(projectRoot: string, gradleArgs: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
692+
private async executeCommand(opts: { projectRoot: string, gradleArgs: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions, message: string }): Promise<ISpawnResult> {
680693
if (this.$androidToolsInfo.getToolsInfo().androidHomeEnvVar) {
694+
const { projectRoot, gradleArgs, message, spawnFromEventOptions } = opts;
681695
const gradlew = this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew";
682696

683697
if (this.$logger.getLevel() === "INFO") {
684698
gradleArgs.push("--quiet");
685-
this.$logger.info("Gradle build...");
686699
}
687700

688-
childProcessOpts = childProcessOpts || {};
701+
this.$logger.info(message);
702+
703+
const childProcessOpts = opts.childProcessOpts || {};
689704
childProcessOpts.cwd = childProcessOpts.cwd || projectRoot;
690705
childProcessOpts.stdio = childProcessOpts.stdio || "inherit";
691706

lib/services/ios-project-service.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { IOSProvisionService } from "./ios-provision-service";
1414
import { IOSEntitlementsService } from "./ios-entitlements-service";
1515
import { XCConfigService } from "./xcconfig-service";
1616
import * as mobileprovision from "ios-mobileprovision-finder";
17-
import { SpawnOptions } from "child_process";
1817
import { BUILD_XCCONFIG_FILE_NAME } from "../constants";
1918

2019
interface INativeSourceCodeGroup {
@@ -126,10 +125,6 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
126125
return true;
127126
}
128127

129-
public async executeCommand(projectRoot: string, args: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
130-
return { stderr: "", stdout: "", exitCode: 0 };
131-
}
132-
133128
public getAppResourcesDestinationDirectoryPath(projectData: IProjectData): string {
134129
const frameworkVersion = this.getFrameworkVersion(projectData);
135130

@@ -1039,10 +1034,6 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f
10391034
return [];
10401035
}
10411036

1042-
public getBuildOptions(configurationFilePath: string): Array<string> {
1043-
return [];
1044-
}
1045-
10461037
private getAllLibsForPluginWithFileExtension(pluginData: IPluginData, fileExtension: string): string[] {
10471038
const filterCallback = (fileName: string, pluginPlatformsFolderPath: string) => path.extname(fileName) === fileExtension;
10481039
return this.getAllNativeLibrariesForPlugin(pluginData, IOSProjectService.IOS_PLATFORM_NAME, filterCallback);

test/stubs.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import * as util from "util";
44
import * as chai from "chai";
55
import { EventEmitter } from "events";
6-
import { SpawnOptions } from "child_process";
76
import * as path from "path";
87
import * as constants from "./../lib/constants";
98
import { Yok } from "./../lib/common/yok";
@@ -355,10 +354,6 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
355354
return Promise.resolve();
356355
}
357356

358-
public async executeCommand(projectRoot: string, gradleArgs: string[], childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
359-
return { stderr: "", stdout: "", exitCode: 0 };
360-
}
361-
362357
async buildProject(projectRoot: string): Promise<void> {
363358
return Promise.resolve();
364359
}
@@ -380,10 +375,6 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
380375
return Promise.resolve();
381376
}
382377

383-
getBuildOptions(configurationFilePath?: string): Array<string> {
384-
return [];
385-
}
386-
387378
async removePluginNativeCode(pluginData: IPluginData): Promise<void> { }
388379

389380
async afterPrepareAllPlugins(): Promise<void> {

0 commit comments

Comments
 (0)