Markdown Converter
Agent skill for markdown-converter
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
JNxPlus is a monorepo containing Nx plugins that add Java/Kotlin build tool support (Maven and Gradle) to Nx workspaces. The project enables developers to use popular Java frameworks (Spring Boot, Quarkus, Micronaut) within Nx monorepos.
Published packages (in release configuration in nx.json):
@jnxplus/nx-maven - Nx plugin for Maven multi-module projects@jnxplus/nx-gradle - Nx plugin for Gradle multi-project builds@jnxplus/common - Shared utilities and types used by both plugins@jnxplus/xml - XML parsing utilities for Maven pom.xml filescreate-nx-maven-workspace - CLI to create Nx workspace with Maven supportcreate-nx-gradle-workspace - CLI to create Nx workspace with Gradle supportInternal packages (not published):
packages/internal/executors - Shared executor implementationspackages/internal/generators-files - Template files for generatorspackages/internal/maven-wrapper - Maven wrapper utilitiespackages/internal/testing - Testing utilitiespackages/gradle-plugin - Gradle plugin (Groovy) that provides project dependency informationBoth nx-maven and nx-gradle follow the same architectural pattern:
Graph Integration (
src/graph/):
create-nodes.ts / create-nodes-v2.ts - Infer Nx projects from build tool configurationcreate-dependencies.ts - Infer project dependencies from build toolgraph-utils.ts - Helper functions for graph creation:projectDependencyTask (from gradle-plugin) to get project structureGenerators (
src/generators/):
init - Initialize workspace with build tool support (wrappers and config)
javaVersion and dependencyManagement strategyapplication - Generate new application projectslibrary - Generate new library projectsparent-project (Maven only) - Generate Maven parent projects with dependency managementpreset - Preset for workspace initializationwrapper - Add/update build tool wrapperExecutors (
src/executors/):
run-task - Execute arbitrary Maven/Gradle tasksTypeScript path aliases are configured in
tsconfig.base.json:
@jnxplus/common → packages/common/src/index.ts@jnxplus/nx-gradle → packages/nx-gradle/src/index.ts@jnxplus/nx-maven → packages/nx-maven/src/index.ts@jnxplus/xml → packages/xml/src/index.ts@jnxplus/internal-executors → packages/internal/executors/src/index.ts@jnxplus/internal/testing → packages/internal/testing/src/index.ts# Build all packages nx run-many -t build # Build a specific package nx build nx-maven nx build nx-gradle # Run tests for a specific package nx test nx-maven # Run all tests nx run-many -t test # Run smoke tests (integration tests with real Maven/Gradle projects) nx smoke jnxplus-smoke # Run e2e tests (end-to-end tests with workspace creation) nx e2e jnxplus-e2e # Lint all packages nx run-many -t lint # Run specific test suites in CI mode with coverage nx test nx-maven --configuration=ci
# Start local npm registry (Verdaccio) nx local-registry # Publish packages to local registry for testing nx run-many --targets publish --ver 0.0.0-e2e --tag e2e # Reset to public registry npm config set registry https://registry.npmjs.org/
# Dry run release (minor version) nx release --specifier minor --skip-publish --dry-run # Dry run release (prerelease) nx release --specifier prerelease --skip-publish --dry-run # Version and publish with next tag nx release version --specifier preminor --preid next --dry-run nx run-many -t build nx release publish --tag next --verbose --dry-run
lint-staged which executes ESLint and Prettier on staged filesAll plugins support:
spring-boot-parent-pom - Spring Boot Parent POMspring-boot-bom - Spring Boot BOM (Bill of Materials)quarkus-bom - Quarkus BOMmicronaut-parent-pom - Micronaut Parent POMmicronaut-bom - Micronaut BOMnone - For advanced users onlynx generate @jnxplus/nx-maven:init
nx generate @jnxplus/nx-maven:parent-projectAdvanced users can select "None (Advanced users only)" for javaVersion or dependencyManagement during init to configure these manually later in parent projects or custom configurations. This provides flexibility for complex project structures and custom dependency management strategies.
packages/ directorytesting-projects/ directoryThe project has two main test suites beyond unit tests:
jnxplus-smoke) - Integration tests that create real Maven/Gradle projects and test plugin functionality with actual build toolsjnxplus-e2e) - End-to-end tests that test workspace creation CLIs and full plugin workflowsBoth test suites use Jest with
runInBand: true to avoid parallel execution issues with file system operations.
Do what has been asked; nothing more, nothing less. NEVER create files unless they're absolutely necessary for achieving your goal. ALWAYS prefer editing an existing file to creating a new one. NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.