From c24b4c718b79e4a8b61d477fef66ed5b234def91 Mon Sep 17 00:00:00 2001 From: Tine Kondo Date: Sun, 28 Apr 2024 12:31:28 +0000 Subject: [PATCH 1/3] fix(nx-spring-boot): fix `undefined (reading 'applied')` when generating the project graph Closes #223 --- packages/nx-spring-boot/src/utils/plugin-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nx-spring-boot/src/utils/plugin-utils.ts b/packages/nx-spring-boot/src/utils/plugin-utils.ts index d10aa6f7..e3640655 100644 --- a/packages/nx-spring-boot/src/utils/plugin-utils.ts +++ b/packages/nx-spring-boot/src/utils/plugin-utils.ts @@ -56,7 +56,7 @@ export function getProjectTypeAndTargetsFromFile( ); skipFormat = hasGradlePlugin(projectContent, SPOTLESS_GRADLE_PLUGIN_ID); projectType = - getGradlePlugin(projectContent, 'org.springframework.boot').applied === + getGradlePlugin(projectContent, 'org.springframework.boot')?.applied === false ? 'library' : 'application'; From 854a9eebe8c7b821544117211ac3033eabb0c0c2 Mon Sep 17 00:00:00 2001 From: Tine Kondo Date: Sun, 28 Apr 2024 12:32:15 +0000 Subject: [PATCH 2/3] fix(nx-quarkus): fix `undefined (reading 'applied')` when generating the project graph Closes #223 --- packages/nx-quarkus/src/utils/plugin-utils.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/nx-quarkus/src/utils/plugin-utils.ts b/packages/nx-quarkus/src/utils/plugin-utils.ts index d8a232bc..c2e709e9 100644 --- a/packages/nx-quarkus/src/utils/plugin-utils.ts +++ b/packages/nx-quarkus/src/utils/plugin-utils.ts @@ -44,8 +44,8 @@ export function getProjectTypeAndTargetsFromFile( ); projectType = hasMavenPlugin( root, - 'org.springframework.boot', - 'spring-boot-maven-plugin' + '${quarkus.platform.group-id}', + 'quarkus-maven-plugin' ) ? 'application' : 'library'; @@ -56,8 +56,7 @@ export function getProjectTypeAndTargetsFromFile( ); skipFormat = hasGradlePlugin(projectContent, SPOTLESS_GRADLE_PLUGIN_ID); projectType = - getGradlePlugin(projectContent, 'org.springframework.boot').applied === - false + getGradlePlugin(projectContent, 'io.quarkus')?.applied === false ? 'library' : 'application'; } From 1455c639051e604933ef1009dd748ab5ced126f2 Mon Sep 17 00:00:00 2001 From: Tine Kondo Date: Sun, 28 Apr 2024 13:11:58 +0000 Subject: [PATCH 3/3] fix: fix dependencies from modules not properly created when building project graph --- .../common-jvm/src/lib/utils/gradle-utils.ts | 2 +- packages/common-jvm/src/lib/utils/utils.ts | 37 ++++++++++++++----- .../common/src/lib/workspace/project-graph.ts | 9 ++--- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/packages/common-jvm/src/lib/utils/gradle-utils.ts b/packages/common-jvm/src/lib/utils/gradle-utils.ts index 4dd2ed96..5ea1965e 100644 --- a/packages/common-jvm/src/lib/utils/gradle-utils.ts +++ b/packages/common-jvm/src/lib/utils/gradle-utils.ts @@ -533,7 +533,7 @@ export function getCoordinatesForGradleProjet(cwd: string): { /rootProject\.name\s*=\s*['"]([^"']+)['"]/ )?.[1]; } - artifactId = artifactId ?? name; // use the folder name as default if stil undefined + artifactId = artifactId ?? name; // use the folder name as default if still undefined if (hasGradleBuildFile(cwd)) { const buildGradle = getProjectFileContent({ root: cwd }, `build${ext}`); diff --git a/packages/common-jvm/src/lib/utils/utils.ts b/packages/common-jvm/src/lib/utils/utils.ts index fa8823ba..76774db3 100644 --- a/packages/common-jvm/src/lib/utils/utils.ts +++ b/packages/common-jvm/src/lib/utils/utils.ts @@ -204,7 +204,7 @@ export function getJvmPackageInfo(project: { root: string }): PackageInfo { packageId: `${groupId}:${artifactId}`, packageFile: 'pom.xml', dependencies, - modules: modules.map((mod) => `${groupId}:${mod}`), + modules: modules.map((module) => `${project.root}/${module}`), }; } @@ -225,29 +225,46 @@ export function getJvmPackageInfo(project: { root: string }): PackageInfo { const id = match?.groups?.['id']; if (id) { // project dependencies start with ':', we prepend the groupId to it - dependencyIds.push(id.startsWith(':') ? `${groupId}${id}` : id); + dependencyIds.push( + id.startsWith(':') + ? `${project.root}${id.replaceAll(':', '/')}` + : id + ); } } while (match); } const dependencies: PackageInfo[] = dependencyIds.map((depId) => { - return { packageId: depId, packageFile: `build${ext}` }; + let depGroupId: string | null | undefined; + let depArtifactId: string | null | undefined; + if (depId.startsWith(':')) { + // project dependencies start with ':' + const coordinates = getCoordinatesForGradleProjet( + `${project.root}/${depId.replaceAll(':', '/')}` + ); + depGroupId = coordinates.groupId; + depArtifactId = coordinates.artifactId; + } else { + [depGroupId, depArtifactId] = depId.split(':'); + } + + return { + packageId: `${depGroupId}:${depArtifactId}`, + packageFile: `build${ext}`, + }; }); const modules = getGradleModules(project.root); - const offsetFromRoot = getPathFromParentModule(project.root); - const pkgId = offsetFromRoot - ? offsetFromRoot.replaceAll('/', ':') - : artifactId; - return { - packageId: `${groupId}:${pkgId}`, + packageId: `${groupId}:${artifactId}`, packageFile: hasGradleSettingsFile(project.root) ? `settings${ext}` : `build${ext}`, dependencies, - modules: modules.map((mod) => `${groupId}:${mod}`), + modules: modules.map( + (module) => `${project.root}/${module.replaceAll(':', '/')}` + ), }; } diff --git a/packages/common/src/lib/workspace/project-graph.ts b/packages/common/src/lib/workspace/project-graph.ts index 37dc61be..d09b2086 100644 --- a/packages/common/src/lib/workspace/project-graph.ts +++ b/packages/common/src/lib/workspace/project-graph.ts @@ -73,8 +73,7 @@ function getDependenciesForProject( const sourceProjectRoot = getProjectRootFromFile(filePath); const sourcePkgInfo = workspace.projects[sourceProjectRoot]; - if(!sourcePkgInfo) - return dependencies; + if (!sourcePkgInfo) return dependencies; sourcePkgInfo.dependencies?.forEach((depPkgInfo) => { const targetProjectName = workspace.packages[depPkgInfo.packageId]; @@ -93,12 +92,12 @@ function getDependenciesForProject( }); sourcePkgInfo.modules?.forEach((moduleId) => { - const depProjectName = workspace.packages[moduleId]; + const depProject = workspace.projects[moduleId]; - if (depProjectName) { + if (depProject) { dependencies.push({ source: sourceProjectName, - target: depProjectName, + target: workspace.packages[depProject.packageId], type: DependencyType.static, sourceFile: joinPathFragments( sourceProjectRoot,