From a477f000ee5da4d681bd4e774da43b83dcc883ae Mon Sep 17 00:00:00 2001 From: Remie Bolte Date: Tue, 17 Dec 2024 10:57:57 +0100 Subject: [PATCH] fix: add ability to provide maven profiles for generating dependency graph --- src/apt/helpers/generateDependencyTree.ts | 1 + src/commands/apt.ts | 2 ++ src/types/DCAPT.ts | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/src/apt/helpers/generateDependencyTree.ts b/src/apt/helpers/generateDependencyTree.ts index d11daa9..b943fc7 100644 --- a/src/apt/helpers/generateDependencyTree.ts +++ b/src/apt/helpers/generateDependencyTree.ts @@ -111,6 +111,7 @@ export const generateDependencyTree = async (options: TAPTDependencyTreeOptions) const maven = spawn( 'mvn', [ + ...options.activateProfiles ? [ '-P', options.activateProfiles ] : [], 'dependency:tree', '-f', pomFile, '-DoutputType=dot', diff --git a/src/commands/apt.ts b/src/commands/apt.ts index 36f56ff..dca8114 100644 --- a/src/commands/apt.ts +++ b/src/commands/apt.ts @@ -303,6 +303,7 @@ const DependencyTreeCommand = () => ({ action: async (options: TAPTDependencyTreeArgs) => { await generateDependencyTree({ appKey: options.appKey, + activateProfiles: options.activateProfiles, outputFile: options.outputFile || join(cwd(), 'maven_dependency_tree.gv') }); }, @@ -498,6 +499,7 @@ program .command('dependencies') .description('Generate the Data Center App Performance Testing dependency tree') .addOption(new Option('--appKey ', 'The key of the app to graph dependencies for')) + .addOption(new Option('-P, --activate-profiles ', 'Comma-delimited list of profiles to activate')) .addOption(new Option('-O, --outputFile ', 'Specify the output file where to store the generated dependency tree (defaults to `./maven_dependency_tree.gv`)')) .action(options => ActionHandler(program, DependencyTreeCommand(), options)); diff --git a/src/types/DCAPT.ts b/src/types/DCAPT.ts index d5d46ef..11f5ed6 100644 --- a/src/types/DCAPT.ts +++ b/src/types/DCAPT.ts @@ -203,14 +203,19 @@ export const APTRestartOptions = APTTeardownOptions.extend({}); export const APTDependencyTreeArgs = z.object({ appKey: z.string(), + activateProfiles: z.string(), outputFile: z.string() }).partial({ + activateProfiles: true, outputFile: true }); export const APTDependencyTreeOptions = z.object({ appKey: z.string(), + activateProfiles: z.string(), outputFile: z.string() +}).partial({ + activateProfiles: true }); export const APTSCAArgs = z.object({