UNPKG

@nx/gradle

Version:

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

67 lines (66 loc) 2.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProjectReportLines = getProjectReportLines; const devkit_1 = require("@nx/devkit"); const exec_gradle_1 = require("../../utils/exec-gradle"); /** * 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; 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(exec_gradle_1.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; }