Skip to content

Commit

Permalink
feat: possibility to rename target names (#1056)
Browse files Browse the repository at this point in the history
* feat: get buildTargetName from nx.json

* build: work in progress

* build: work in progress

* build: work in progress

* build: work in progress

* feat: possibility to rename target names
  • Loading branch information
khalilou88 authored May 23, 2024
1 parent f6c7171 commit 15f80ca
Show file tree
Hide file tree
Showing 5 changed files with 196 additions and 40 deletions.
4 changes: 4 additions & 0 deletions packages/common/src/lib/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,9 @@ export type NxMavenPluginOptions = {
mavenRootDirectory: string;
localRepoRelativePath: string;
buildTargetName: string;
buildImageTargetName: string;
serveTargetName: string;
testTargetName: string;
integrationTestTargetName: string;
};
export type NxGradlePluginOptions = { gradleRootDirectory: string };
74 changes: 52 additions & 22 deletions packages/nx-maven/src/generators/application/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,14 @@ import {
addMissedProperties,
addProjectToAggregator,
extractRootPomValues,
getBuildImageTargetName,
getBuildTargetName,
getIntegrationTestTargetName,
getMavenRootDirectory,
getParentProjectValues,
getPlugin,
getServeTargetName,
getTestTargetName,
} from '../../utils';
import { NxMavenAppGeneratorSchema } from './schema';

Expand All @@ -60,6 +66,11 @@ interface NormalizedSchema extends NxMavenAppGeneratorSchema {
dependencyManagement: DependencyManagementType;
mavenRootDirectory: string;
basePackage: string;
buildTargetName: string;
buildImageTargetName: string;
serveTargetName: string;
testTargetName: string;
integrationTestTargetName: string;
}

function normalizeOptions(
Expand Down Expand Up @@ -115,6 +126,14 @@ function normalizeOptions(

const basePackage = generateBasePackage(options.groupId);

const plugin = getPlugin();
const buildTargetName = getBuildTargetName(plugin);

const buildImageTargetName = getBuildImageTargetName(plugin);
const serveTargetName = getServeTargetName(plugin);
const testTargetName = getTestTargetName(plugin);
const integrationTestTargetName = getIntegrationTestTargetName(plugin);

return {
...options,
projectName,
Expand All @@ -135,6 +154,11 @@ function normalizeOptions(
dependencyManagement,
mavenRootDirectory,
basePackage,
buildTargetName,
buildImageTargetName,
serveTargetName,
testTargetName,
integrationTestTargetName,
};
}

Expand Down Expand Up @@ -363,67 +387,71 @@ async function applicationGenerator(
projectType: 'application',
sourceRoot: `./${normalizedOptions.projectRoot}/src`,
targets: {
build: {
[normalizedOptions.buildTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
outputs: ['{projectRoot}/target'],
options: {
task: 'compile -DskipTests=true',
},
},
'build-image': {},
serve: {
[normalizedOptions.buildImageTargetName]: {},
[normalizedOptions.serveTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
options: {
task: 'exec:java',
},
dependsOn: ['build'],
dependsOn: [`${normalizedOptions.buildTargetName}`],
},
test: {
[normalizedOptions.testTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
options: {
task: 'test',
},
dependsOn: ['^build'],
dependsOn: [`^${normalizedOptions.buildTargetName}`],
},
'integration-test': {},
[normalizedOptions.integrationTestTargetName]: {},
},
tags: normalizedOptions.parsedTags,
};

const targets = projectConfiguration.targets ?? {};

if (options.framework === 'spring-boot') {
targets['build'].options = {
...targets['build'].options,
targets[`${normalizedOptions.buildTargetName}`].options = {
...targets[`${normalizedOptions.buildTargetName}`].options,
task: 'package spring-boot:repackage -DskipTests=true',
};

targets['build-image'] = {
targets[`${normalizedOptions.buildImageTargetName}`] = {
executor: '@jnxplus/nx-maven:run-task',
options: {
task: 'spring-boot:build-image',
},
};

targets['serve'].options = {
...targets['serve'].options,
targets[`${normalizedOptions.serveTargetName}`].options = {
...targets[`${normalizedOptions.serveTargetName}`].options,
task: 'spring-boot:run',
};
targets['serve'].dependsOn = ['^build'];
targets[`${normalizedOptions.serveTargetName}`].dependsOn = [
`^${normalizedOptions.buildTargetName}`,
];
}

if (options.framework === 'quarkus') {
targets['build-image'] = {
targets[`${normalizedOptions.buildImageTargetName}`] = {
executor: '@jnxplus/nx-maven:quarkus-build-image',
};

targets['serve'].options = {
...targets['serve'].options,
targets[`${normalizedOptions.serveTargetName}`].options = {
...targets[`${normalizedOptions.serveTargetName}`].options,
task: 'quarkus:dev',
};
targets['serve'].dependsOn = ['^build'];
targets[`${normalizedOptions.serveTargetName}`].dependsOn = [
`^${normalizedOptions.buildTargetName}`,
];

targets['integration-test'] = {
targets[`${normalizedOptions.integrationTestTargetName}`] = {
executor: '@jnxplus/nx-maven:run-task',
options: {
task: 'integration-test',
Expand All @@ -432,18 +460,20 @@ async function applicationGenerator(
}

if (options.framework === 'micronaut') {
targets['build-image'] = {
targets[`${normalizedOptions.buildImageTargetName}`] = {
executor: '@jnxplus/nx-maven:run-task',
options: {
task: 'package -Dpackaging=docker',
},
};

targets['serve'].options = {
...targets['serve'].options,
targets[`${normalizedOptions.serveTargetName}`].options = {
...targets[`${normalizedOptions.serveTargetName}`].options,
task: 'mn:run',
};
targets['serve'].dependsOn = ['^build'];
targets[`${normalizedOptions.serveTargetName}`].dependsOn = [
`^${normalizedOptions.buildTargetName}`,
];
}

clearEmpties(targets);
Expand Down
17 changes: 14 additions & 3 deletions packages/nx-maven/src/generators/library/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@ import {
addLibraryToProjects,
addMissedProperties,
addProjectToAggregator,
getBuildTargetName,
getMavenRootDirectory,
getParentProjectValues,
getPlugin,
getTestTargetName,
} from '../../utils';
import { NxMavenLibGeneratorSchema } from './schema';

Expand All @@ -53,6 +56,8 @@ interface NormalizedSchema extends NxMavenLibGeneratorSchema {
quarkusVersion: string;
micronautVersion: string;
mavenRootDirectory: string;
buildTargetName: string;
testTargetName: string;
}

function normalizeOptions(
Expand Down Expand Up @@ -96,6 +101,10 @@ function normalizeOptions(
options.parentProject,
);

const plugin = getPlugin();
const buildTargetName = getBuildTargetName(plugin);
const testTargetName = getTestTargetName(plugin);

return {
...options,
projectName,
Expand All @@ -113,6 +122,8 @@ function normalizeOptions(
quarkusVersion,
micronautVersion,
mavenRootDirectory,
buildTargetName,
testTargetName,
};
}

Expand Down Expand Up @@ -298,19 +309,19 @@ async function libraryGenerator(
projectType: 'library',
sourceRoot: `./${normalizedOptions.projectRoot}/src`,
targets: {
build: {
[normalizedOptions.buildTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
outputs: ['{projectRoot}/target', '{options.outputDirLocalRepo}'],
options: {
task: 'install -DskipTests=true',
},
},
test: {
[normalizedOptions.testTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
options: {
task: 'test',
},
dependsOn: ['build'],
dependsOn: [`${normalizedOptions.buildTargetName}`],
},
},
tags: normalizedOptions.parsedTags,
Expand Down
9 changes: 8 additions & 1 deletion packages/nx-maven/src/generators/parent-project/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@ import * as path from 'path';
import {
addMissedProperties,
addProjectToAggregator,
getBuildTargetName,
getMavenRootDirectory,
getParentProjectValues,
getPlugin,
} from '../../utils';
import { NxMavenParentProjectGeneratorSchema } from './schema';

Expand Down Expand Up @@ -66,6 +68,7 @@ interface NormalizedSchema extends NxMavenParentProjectGeneratorSchema {
mavenWarPluginVersion: string;
mavenSurefirePluginVersion: string;
mavenFailsafePluginVersion: string;
buildTargetName: string;
}

function normalizeOptions(
Expand Down Expand Up @@ -100,6 +103,9 @@ function normalizeOptions(
options.parentProject,
);

const plugin = getPlugin();
const buildTargetName = getBuildTargetName(plugin);

return {
...options,
projectName,
Expand All @@ -124,6 +130,7 @@ function normalizeOptions(
mavenWarPluginVersion,
mavenSurefirePluginVersion,
mavenFailsafePluginVersion,
buildTargetName,
};
}

Expand Down Expand Up @@ -167,7 +174,7 @@ async function parentProjectGenerator(
root: normalizedOptions.projectRoot,
projectType: normalizedOptions.projectType,
targets: {
build: {
[normalizedOptions.buildTargetName]: {
executor: '@jnxplus/nx-maven:run-task',
outputs: ['{options.outputDirLocalRepo}'],
options: {
Expand Down
Loading

0 comments on commit 15f80ca

Please sign in to comment.