UNPKG

@nx/gradle

Version:

The Nx Plugin for Gradle allows Gradle tasks to be run through Nx

75 lines (74 loc) 3.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newLineSeparator = exports.fileSeparator = void 0; exports.getProjectReportLines = getProjectReportLines; const devkit_1 = require("@nx/devkit"); const exec_gradle_1 = require("./exec-gradle"); exports.fileSeparator = process.platform.startsWith('win') ? 'file:///' : 'file://'; exports.newLineSeparator = process.platform.startsWith('win') ? '\r\n' : '\n'; /** * This function executes the gradle projectReportAll task and returns the output as an array of lines. * @param gradlewFile the absolute path to the gradlew file * @returns project report lines */ async function getProjectReportLines(gradlewFile) { let projectReportBuffer; // Attempt to run projectReport or projectReportAll task, regardless of build.gradle or build.gradle.kts location try { projectReportBuffer = await (0, exec_gradle_1.execGradleAsync)(gradlewFile, [ 'projectReportAll', process.env.NX_VERBOSE_LOGGING === 'true' ? '--info' : '', '--exclude-task', 'htmlDependencyReport', ]); } catch (e) { if (e.toString()?.includes('ERROR: JAVA_HOME')) { throw new devkit_1.AggregateCreateNodesError([ [ gradlewFile, new Error(`Could not find Java. Please install Java and try again: https://www.java.com/en/download/help/index_installing.html.\n\r${e.toString()}`), ], ], []); } else if (e.toString()?.includes(`Task 'projectReportAll' not found`)) { try { projectReportBuffer = await (0, exec_gradle_1.execGradleAsync)(gradlewFile, [ 'projectReport', ]); devkit_1.logger.warn(`Could not run 'projectReportAll' task. Ran 'projectReport' instead. Please run 'nx generate @nx/gradle:init' to generate the necessary tasks.\n\r${e.toString()}`); } catch (e) { throw new devkit_1.AggregateCreateNodesError([ [ gradlewFile, new Error(`Could not run 'projectReportAll' or 'projectReport' task. Please run 'nx generate @nx/gradle:init' to generate the necessary tasks.\n\r${e.toString()}`), ], ], []); } } else { throw new devkit_1.AggregateCreateNodesError([ [ gradlewFile, new Error(`Could not run 'projectReportAll' or 'projectReport' Gradle task. Please install Gradle and try again: https://gradle.org/install/.\r\n${e.toString()}`), ], ], []); } } const projectReportLines = projectReportBuffer .toString() .split(exports.newLineSeparator) .filter((line) => line.trim() !== ''); if (process.env.NX_VERBOSE_LOGGING === 'true') { devkit_1.output.log({ title: `Successfully ran projectReportAll or projectRerport task using ${gradlewFile}`, bodyLines: projectReportLines, }); } return projectReportLines; }