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.
Easy JaCoCo Maven Plugin is a Maven extension that simplifies JaCoCo code coverage setup in multi-module projects. It automatically gathers coverage data from all modules into aggregated reports and provides project-wide coverage checks with minimal configuration.
mvn clean installmvn clean install -Pquickbuildmvn clean install -Pci -Dgpg.skip=truemvn clean install -Pdevmvn testmvn clean install -Pdev (integration tests require prior install)mvn test -Dtest=ClassNameTestmvn test - they must be run via mvn clean install -Pdevmvn git-code-format:format-code -Pdevmvn git-code-format:validate-code-formatmvn sortpom:sort -Pdevmvn license:checkmvn license:format -Pdevmvn com.marvinformatics.jacoco:easy-jacoco-maven-plugin:0.0.1-SNAPSHOT:check-projectmvn com.marvinformatics.jacoco:easy-jacoco-maven-plugin:0.0.1-SNAPSHOT:report-projectEasyJacocoLifecycleParticipant (src/main/java/com/marvinformatics/easyjacoco/EasyJacocoLifecycleParticipant.java:48): Maven lifecycle participant that hooks into the build lifecycle at
afterProjectsRead. Key responsibilities:
prepare-agent, prepare-agent-integration, report, and report-integration goalscoverage/)coverageProjectDir (default: "coverage") and overrideDependencies (default: false) parametersMaven Goals (Mojos):
ProjectReportMojo (report-project): Generates aggregated coverage reports (HTML, XML, CSV) by merging all *.exec files from the projectProjectCheckMojo (check-project): Performs project-wide coverage validation against configured rules with default 80% instruction coverageInstrumentJarMojo (instrument-jar): Instruments JAR files for offline coverage collectionPersistProjectForReportMojo (persist-report-project): Internal goal that persists report project metadata to the generated POMJaCoCo Integration Layer (src/main/java/com/marvinformatics/easyjacoco/jacoco/):
ReportSupport: Core reporting functionality - manages JaCoCo report visitors and coverage data aggregationCoverageBuilder: Coverage data aggregation from class files and execution dataFileFilter: File inclusion/exclusion logic using wildcards for both source files and execution dataReportFormat: Output format handling (HTML, XML, CSV)Dynamic POM Generation: Instead of requiring users to create a dedicated aggregator module, the plugin dynamically generates one at build time. This generated POM:
coverage/)Lifecycle Integration: The plugin uses Maven's
AbstractMavenLifecycleParticipant to inject itself early in the build process, allowing it to modify all module POMs before they're built.
File Discovery: Coverage data (
.exec files) and class files are discovered using flexible glob patterns (**/target/*.exec by default), making the plugin work with varied project structures.
The plugin is activated as a Maven extension via
.mvn/extensions.xml:
<extension> <groupId>com.marvinformatics.jacoco</groupId> <artifactId>easy-jacoco-maven-plugin</artifactId> <version>${easy-jacoco.version}</version> </extension>
-Deasyjacoco.skip=true<coverageProjectDir> in plugin config (default: "coverage")<overrideDependencies>true</overrideDependencies> to replace rather than merge dependenciesexamples/ directory with working configurationsExampleProjectMavenBuildIT.java to test against real projectsmain.java.version)jacoco/ package which is adapted from JaCoCo)The project uses both unit tests and integration tests:
src/test/javaExampleProjectMavenBuildIT.java uses Maven Invoker to build and verify real example projectsexamples/basic/ and examples/instrument-jar/ serve as both documentation and integration test subjectsmvn clean install) before integration tests can run successfully