@jnxplus/nx-maven
Version:
[](https://badge.fury.io/js/@jnxplus%2Fnx-maven)
91 lines • 4.41 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const tslib_1 = require("tslib");
const common_1 = require("@jnxplus/common");
const devkit_1 = require("@nx/devkit");
const path = require("path");
const utils_1 = require("../../utils");
function default_1(tree, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
yield parentProjectGenerator(tree, options);
});
}
function normalizeOptions(tree, options) {
const simpleProjectName = (0, common_1.generateSimpleProjectName)({
name: options.name,
});
const projectName = (0, common_1.generateProjectName)(simpleProjectName, {
name: options.name,
simpleName: options.simpleName,
directory: options.directory,
});
const projectDirectory = (0, common_1.generateProjectDirectory)(simpleProjectName, {
directory: options.directory,
});
const mavenRootDirectory = (0, utils_1.getMavenRootDirectory)();
const projectRoot = (0, common_1.generateProjectRoot)(mavenRootDirectory, projectDirectory);
const parsedTags = (0, common_1.parseTags)(options.tags);
const [relativePath, parentProjectName, parentGroupId, parentProjectVersion] = (0, utils_1.getParentProjectValues)(tree, mavenRootDirectory, projectRoot, options.parentProject);
const plugin = (0, utils_1.getPlugin)();
const buildTargetName = (0, common_1.getBuildTargetName)(plugin);
const aggregatorProjectRoot = (0, utils_1.getAggregatorProjectRoot)(tree, options.aggregatorProject, mavenRootDirectory);
return Object.assign(Object.assign({}, options), { projectName,
projectRoot,
projectDirectory,
parsedTags,
parentGroupId,
parentProjectName,
parentProjectVersion,
relativePath,
kotlinVersion: common_1.kotlinVersion,
springBootVersion: common_1.springBootVersion,
quarkusVersion: common_1.quarkusVersion,
micronautVersion: common_1.micronautVersion,
mavenRootDirectory,
micronautCoreVersion: common_1.micronautCoreVersion,
micronautSerializationVersion: common_1.micronautSerializationVersion,
micronautTestResourcesVersion: common_1.micronautTestResourcesVersion,
micronautMavenPluginVersion: common_1.micronautMavenPluginVersion,
mavenCompilerPluginVersion: common_1.mavenCompilerPluginVersion,
mavenEnforcerPluginVersion: common_1.mavenEnforcerPluginVersion,
mavenResourcesPluginVersion: common_1.mavenResourcesPluginVersion,
mavenWarPluginVersion: common_1.mavenWarPluginVersion,
mavenSurefirePluginVersion: common_1.mavenSurefirePluginVersion,
mavenFailsafePluginVersion: common_1.mavenFailsafePluginVersion,
buildTargetName,
aggregatorProjectRoot });
}
function addFiles(tree, options) {
const templateOptions = Object.assign(Object.assign(Object.assign({}, options), (0, devkit_1.names)(options.name)), { offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot), template: '' });
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), options.projectRoot, templateOptions);
}
function parentProjectGenerator(tree, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const normalizedOptions = normalizeOptions(tree, options);
(0, devkit_1.addProjectConfiguration)(tree, normalizedOptions.projectName, {
root: normalizedOptions.projectRoot,
projectType: normalizedOptions.projectType,
targets: {
[normalizedOptions.buildTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
outputs: ['{options.outputDirLocalRepo}'],
options: {
task: 'install',
},
},
},
tags: normalizedOptions.parsedTags,
});
addFiles(tree, normalizedOptions);
(0, utils_1.addProjectToAggregator)(tree, {
projectRoot: normalizedOptions.projectRoot,
aggregatorProjectRoot: normalizedOptions.aggregatorProjectRoot,
mavenRootDirectory: normalizedOptions.mavenRootDirectory,
});
if (!options.skipFormat) {
yield (0, devkit_1.formatFiles)(tree);
}
});
}
//# sourceMappingURL=generator.js.map