diff --git a/packages/nx-maven/src/generators/application/generator.ts b/packages/nx-maven/src/generators/application/generator.ts index 806a90b00..e2ac98c06 100644 --- a/packages/nx-maven/src/generators/application/generator.ts +++ b/packages/nx-maven/src/generators/application/generator.ts @@ -37,7 +37,7 @@ import { addMissedProperties, addProjectToAggregator, extractRootPomValues, - getAggregatorProjectName, + getAggregatorProjectRoot, getMavenRootDirectory, getParentProjectValues, getPlugin, @@ -72,6 +72,7 @@ interface NormalizedSchema extends NxMavenAppGeneratorSchema { serveTargetName: string; testTargetName: string; integrationTestTargetName: string; + aggregatorProjectRoot: string; } function normalizeOptions( @@ -134,7 +135,7 @@ function normalizeOptions( const testTargetName = getTestTargetName(plugin); const integrationTestTargetName = getIntegrationTestTargetName(plugin); - const aggregatorProject = getAggregatorProjectName( + const aggregatorProjectRoot = getAggregatorProjectRoot( tree, options.aggregatorProject, mavenRootDirectory, @@ -165,7 +166,7 @@ function normalizeOptions( serveTargetName, testTargetName, integrationTestTargetName, - aggregatorProject, + aggregatorProjectRoot, }; } @@ -494,7 +495,7 @@ async function applicationGenerator( addFiles(tree, normalizedOptions); addProjectToAggregator(tree, { projectRoot: normalizedOptions.projectRoot, - aggregatorProject: normalizedOptions.aggregatorProject, + aggregatorProjectRoot: normalizedOptions.aggregatorProjectRoot, mavenRootDirectory: normalizedOptions.mavenRootDirectory, }); if (!options.skipFormat) { diff --git a/packages/nx-maven/src/generators/application/schema.d.ts b/packages/nx-maven/src/generators/application/schema.d.ts index bee468187..6386f2d1b 100644 --- a/packages/nx-maven/src/generators/application/schema.d.ts +++ b/packages/nx-maven/src/generators/application/schema.d.ts @@ -12,7 +12,7 @@ export interface NxMavenAppGeneratorSchema { packaging: PackagingType; configFormat: '.properties' | '.yml'; parentProject: string; - aggregatorProject: string; + aggregatorProject?: string; minimal?: boolean; port?: string | number; framework?: FrameworkType; diff --git a/packages/nx-maven/src/generators/library/generator.ts b/packages/nx-maven/src/generators/library/generator.ts index 593b0940e..11b8b7f10 100644 --- a/packages/nx-maven/src/generators/library/generator.ts +++ b/packages/nx-maven/src/generators/library/generator.ts @@ -30,7 +30,7 @@ import { addLibraryToProjects, addMissedProperties, addProjectToAggregator, - getAggregatorProjectName, + getAggregatorProjectRoot, getMavenRootDirectory, getParentProjectValues, getPlugin, @@ -59,6 +59,7 @@ interface NormalizedSchema extends NxMavenLibGeneratorSchema { mavenRootDirectory: string; buildTargetName: string; testTargetName: string; + aggregatorProjectRoot: string; } function normalizeOptions( @@ -106,7 +107,7 @@ function normalizeOptions( const buildTargetName = getBuildTargetName(plugin); const testTargetName = getTestTargetName(plugin); - const aggregatorProject = getAggregatorProjectName( + const aggregatorProjectRoot = getAggregatorProjectRoot( tree, options.aggregatorProject, mavenRootDirectory, @@ -131,7 +132,7 @@ function normalizeOptions( mavenRootDirectory, buildTargetName, testTargetName, - aggregatorProject, + aggregatorProjectRoot, }; } @@ -344,7 +345,7 @@ async function libraryGenerator( addFiles(tree, normalizedOptions); addProjectToAggregator(tree, { projectRoot: normalizedOptions.projectRoot, - aggregatorProject: normalizedOptions.aggregatorProject, + aggregatorProjectRoot: normalizedOptions.aggregatorProjectRoot, mavenRootDirectory: normalizedOptions.mavenRootDirectory, }); addLibraryToProjects(tree, normalizedOptions); diff --git a/packages/nx-maven/src/generators/library/schema.d.ts b/packages/nx-maven/src/generators/library/schema.d.ts index 9033408db..1aa42ccc9 100644 --- a/packages/nx-maven/src/generators/library/schema.d.ts +++ b/packages/nx-maven/src/generators/library/schema.d.ts @@ -10,7 +10,7 @@ export interface NxMavenLibGeneratorSchema { groupId: string; projectVersion: string; parentProject: string; - aggregatorProject: string; + aggregatorProject?: string; projects?: string; skipStarterCode?: boolean; framework?: FrameworkType; diff --git a/packages/nx-maven/src/generators/parent-project/generator.ts b/packages/nx-maven/src/generators/parent-project/generator.ts index 3c1652a2c..bce82b659 100644 --- a/packages/nx-maven/src/generators/parent-project/generator.ts +++ b/packages/nx-maven/src/generators/parent-project/generator.ts @@ -1,9 +1,9 @@ import { - parseTags, generateProjectDirectory, generateProjectName, generateProjectRoot, generateSimpleProjectName, + getBuildTargetName, kotlinVersion, mavenCompilerPluginVersion, mavenEnforcerPluginVersion, @@ -16,9 +16,9 @@ import { micronautSerializationVersion, micronautTestResourcesVersion, micronautVersion, + parseTags, quarkusVersion, springBootVersion, - getBuildTargetName, } from '@jnxplus/common'; import { Tree, @@ -32,7 +32,7 @@ import * as path from 'path'; import { addMissedProperties, addProjectToAggregator, - getAggregatorProjectName, + getAggregatorProjectRoot, getMavenRootDirectory, getParentProjectValues, getPlugin, @@ -70,6 +70,7 @@ interface NormalizedSchema extends NxMavenParentProjectGeneratorSchema { mavenSurefirePluginVersion: string; mavenFailsafePluginVersion: string; buildTargetName: string; + aggregatorProjectRoot: string; } function normalizeOptions( @@ -107,7 +108,7 @@ function normalizeOptions( const plugin = getPlugin(); const buildTargetName = getBuildTargetName(plugin); - const aggregatorProject = getAggregatorProjectName( + const aggregatorProjectRoot = getAggregatorProjectRoot( tree, options.aggregatorProject, mavenRootDirectory, @@ -138,7 +139,7 @@ function normalizeOptions( mavenSurefirePluginVersion, mavenFailsafePluginVersion, buildTargetName, - aggregatorProject, + aggregatorProjectRoot, }; } @@ -196,7 +197,7 @@ async function parentProjectGenerator( addFiles(tree, normalizedOptions); addProjectToAggregator(tree, { projectRoot: normalizedOptions.projectRoot, - aggregatorProject: normalizedOptions.aggregatorProject, + aggregatorProjectRoot: normalizedOptions.aggregatorProjectRoot, mavenRootDirectory: normalizedOptions.mavenRootDirectory, }); if (!options.skipFormat) { diff --git a/packages/nx-maven/src/generators/parent-project/schema.d.ts b/packages/nx-maven/src/generators/parent-project/schema.d.ts index 286f84c02..9c500a7ff 100644 --- a/packages/nx-maven/src/generators/parent-project/schema.d.ts +++ b/packages/nx-maven/src/generators/parent-project/schema.d.ts @@ -9,7 +9,7 @@ export interface NxMavenParentProjectGeneratorSchema { groupId: string; projectVersion?: string; parentProject: string; - aggregatorProject: string; + aggregatorProject?: string; framework?: FrameworkType; language: 'java' | 'kotlin' | 'java-kotlin'; skipFormat?: boolean; diff --git a/packages/nx-maven/src/utils/index.ts b/packages/nx-maven/src/utils/index.ts index 320b21851..ec30110c6 100644 --- a/packages/nx-maven/src/utils/index.ts +++ b/packages/nx-maven/src/utils/index.ts @@ -115,44 +115,30 @@ function getProjectRootFromTree( tree: Tree, mavenRootDirectory: string, projectName: string, -) { +): string { let projectRoot = ''; - if (!projectName) { - throw new Error('ProjectName cannot be empty'); - } - try { projectRoot = readProjectConfiguration(tree, projectName).root; + return projectRoot; } catch (err) { logger.warn(err); - } - - logger.warn(`Here ${projectRoot}`); - if (projectRoot) { - return projectRoot; - } - - const mavenRootDirAbsolutePath = path.join(workspaceRoot, mavenRootDirectory); - - const projectBasedir = getExpressionValue( - 'project.basedir', - mavenRootDirAbsolutePath, - projectName, - ); - - logger.warn(`Here 99 ${projectBasedir}`); + const mavenRootDirAbsolutePath = path.join( + workspaceRoot, + mavenRootDirectory, + ); - projectRoot = path.relative(workspaceRoot, projectBasedir); + const projectBasedir = getExpressionValue( + 'project.basedir', + mavenRootDirAbsolutePath, + projectName, + ); - logger.warn(`Here 22 ${projectRoot}`); + projectRoot = path.relative(workspaceRoot, projectBasedir); - if (!projectRoot) { - throw new Error('ProjectRoot cannot be empty'); + return projectRoot; } - - return projectRoot; } export function getExpressionValue( @@ -181,21 +167,19 @@ export function addProjectToAggregator( tree: Tree, options: { projectRoot: string; - aggregatorProject: string; + aggregatorProjectRoot: string; mavenRootDirectory: string; }, ) { - const aggregatorProjectRoot = getProjectRootFromTree( - tree, - options.mavenRootDirectory, - options.aggregatorProject, + const parentProjectPomPath = path.join( + options.aggregatorProjectRoot, + 'pom.xml', ); - const parentProjectPomPath = path.join(aggregatorProjectRoot, 'pom.xml'); const xmlDoc = readXmlTree(tree, parentProjectPomPath); const aggregatorProjectAbsolutPath = path.join( workspaceRoot, - aggregatorProjectRoot, + options.aggregatorProjectRoot, ); const projectAbsolutePath = path.join(workspaceRoot, options.projectRoot); @@ -604,18 +588,14 @@ export function getSkipAggregatorProjectLinkingOption( return false; } -export function getAggregatorProjectName( +export function getAggregatorProjectRoot( tree: Tree, - aggregatorProject: string, + aggregatorProject: string | undefined, mavenRootDirectory: string, ) { if (!aggregatorProject) { - const xmlDoc = readXmlTree( - tree, - joinPathFragments(mavenRootDirectory, 'pom.xml'), - ); - - return getArtifactId(xmlDoc); + return mavenRootDirectory; } - return aggregatorProject; + + return getProjectRootFromTree(tree, mavenRootDirectory, aggregatorProject); }