UNPKG

@jnxplus/nx-maven

Version:

[![npm version](https://badge.fury.io/js/@jnxplus%2Fnx-maven.svg)](https://badge.fury.io/js/@jnxplus%2Fnx-maven)

114 lines 6.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDependencies = void 0; const devkit_1 = require("@nx/devkit"); const path = require("path"); const utils_1 = require("../utils"); const graph_utils_1 = require("./graph-utils"); const createDependencies = (_, context) => { const results = []; const cachedWorkspaceData = (0, graph_utils_1.getCachedWorkspaceData)(); const projects = cachedWorkspaceData.projects; const plugin = (0, utils_1.getPlugin)(); const skipAggregatorProjectLinkingOption = (0, utils_1.getSkipAggregatorProjectLinkingOption)(plugin); Object.keys(context.filesToProcess.projectFileMap).forEach((source) => { Object.values(context.filesToProcess.projectFileMap[source]).forEach((fileData) => { const filePath = fileData.file; if (path.basename(filePath) === 'pom.xml') { const project = projects.find((element) => (0, devkit_1.joinPathFragments)(element.projectRoot, 'pom.xml') === filePath); if (!project) { const isVerbose = process.env['NX_VERBOSE_LOGGING'] === 'true'; if (isVerbose) { devkit_1.logger.warn(`Can't find project for file: ${filePath}. Maybe this project is not referenced in any modules tag. If you think it's a mistake, please open an issue.`); } } else if (!project.skipProject) { const projectSourceFile = (0, devkit_1.joinPathFragments)(project.projectRoot, 'pom.xml'); if (project.parentProjectArtifactId) { const parentProject = (0, graph_utils_1.getProject)(projects, project.parentProjectArtifactId); if (!parentProject.skipProject) { const newDependency = { source: project.artifactId, target: parentProject.artifactId, sourceFile: projectSourceFile, type: devkit_1.DependencyType.static, }; (0, devkit_1.validateDependency)(newDependency, context); results.push(newDependency); } } if (skipAggregatorProjectLinkingOption === false) { if (project.aggregatorProjectArtifactId && project.aggregatorProjectArtifactId !== project.parentProjectArtifactId) { const aggregatorProject = (0, graph_utils_1.getProject)(projects, project.aggregatorProjectArtifactId); if (!aggregatorProject.skipProject) { const newDependency = { source: project.artifactId, target: aggregatorProject.artifactId, sourceFile: projectSourceFile, type: devkit_1.DependencyType.static, }; (0, devkit_1.validateDependency)(newDependency, context); results.push(newDependency); } } } const dependencies = getDependencyProjects(project, projects); for (const dependency of dependencies) { if (!dependency.skipProject) { const newDependency = { source: project.artifactId, target: dependency.artifactId, sourceFile: projectSourceFile, type: devkit_1.DependencyType.static, }; (0, devkit_1.validateDependency)(newDependency, context); results.push(newDependency); } } const profileDependencies = getProfileDependencyProjects(project, projects); for (const profileDependency of profileDependencies) { if (!profileDependency.skipProject) { const newDependency = { source: project.artifactId, target: profileDependency.artifactId, sourceFile: projectSourceFile, type: devkit_1.DependencyType.static, }; (0, devkit_1.validateDependency)(newDependency, context); results.push(newDependency); } } const pluginDependencies = getPluginDependencyProjects(project, projects); for (const pluginDependency of pluginDependencies) { if (!pluginDependency.skipProject) { const newDependency = { source: project.artifactId, target: pluginDependency.artifactId, sourceFile: projectSourceFile, type: devkit_1.DependencyType.static, }; (0, devkit_1.validateDependency)(newDependency, context); results.push(newDependency); } } } } }); }); // Remove cached data (0, graph_utils_1.removeWorkspaceDataCache)(); return results; }; exports.createDependencies = createDependencies; function getDependencyProjects(project, projects) { return projects.filter((p) => project.dependencies.includes(p.artifactId)); } function getProfileDependencyProjects(project, projects) { return projects.filter((p) => project.profileDependencies.includes(p.artifactId)); } function getPluginDependencyProjects(project, projects) { return projects.filter((p) => project.pluginDependencies.includes(p.artifactId)); } //# sourceMappingURL=create-dependencies.js.map