skjolber/3d-bin-container-packing/maven

Claude Code and agent skill by skjolber/3d-bin-container-packing

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Maven build expertise for this multi-module Java project. Use when working with pom.xml files, managing dependencies, running builds or tests for specific modules, configuring or troubleshooting plugins (surefire, jacoco, shade, spotless, pitest, spotbugs, owasp), building the JMH benchmark JAR, or releasing to Maven Central.

Install

npx vskill@latest install skjolber/3d-bin-container-packing/maven

SKILL.md

Maven Multi-Module Build

This project is a Maven multi-module build. The root pom.xml is the parent; all dependency versions and plugin versions are declared there as properties.

Module Names (for -pl)

-pl valueDescription
apiPublic interfaces and data model
pointsFree-space point tracking
validatorsResult and load validators
corePackager algorithm implementations
testShared test utilities
jmhJMH benchmark suite
visualizer/apiVisualizer JSON contract types
visualizer/algorithmAlgorithm state capture
visualizer/packagingPacking result → JSON conversion

Common Commands

bash
# Build and test one module (and its dependencies)
mvn test -pl <module> -am
# Build without running tests
mvn package -pl <module> -am -DskipTests
# Install all modules
mvn install
# Install everything, skip tests
mvn install -DskipTests

Plugin Reference

Surefire — running tests
bash
mvn test -pl <module> -am

Version is maven-surefire-plugin.version in root pom.xml.

Slow integration tests — differential verification against the 4.x reference

The slow-tests profile runs the *IT classes of core with the Failsafe plugin (same version as Surefire). They compare the 5.0 brute force packagers with the ported 4.x recursive search, the reference oracle in core/src/test/java/.../packer/bruteforce/reference, over thousands of seeded scenarios and the order-9 Bouwkamp codes which are too slow for the ordinary tests. The profile is off by default: a default build has no Failsafe execution, and *IT classes are not run by test. Run the tier locally, on four cores, with:

bash
taskset -c 0-3 ./mvnw -B -ntp -Pdev,slow-tests -Dmaven.build.cache.enabled=false -pl core -am verify

It takes a few minutes, and the forked JVM is stopped after 30 minutes. The tier runs on master in CI and weekly (.github/workflows/maven.yml, job slow-tests, also on demand). To run one class while developing, name it with Surefire: -Dtest=BouwkampReferenceIT -Dsurefire.failIfNoSpecifiedTests=false test.

JaCoCo — code coverage
bash
mvn test jacoco:report -pl <module> -am
# Report lands in target/site/jacoco/index.html
Spotless — code formatting
bash
mvn spotless:check # fail if formatting is off
mvn spotless:apply # auto-fix formatting
Maven Shade — fat JAR (jmh module)
bash
mvn package -pl jmh -am -DskipTests
java -jar jmh/target/benchmark.jar
PiTest — mutation testing
bash
./mvnw -B -ntp -Pdev test-compile org.pitest:pitest-maven:mutationCoverage -pl <module> -am -DfailWhenNoMutations=false

-DfailWhenNoMutations=false is needed because -am also runs PIT on upstream modules. Narrow a run with -DtargetClasses=<pattern> -DtargetTests=<pattern> (for example -DtargetClasses='com.github.skjolber.packing.ep.points2d.*'); a whole module takes long. JUnit 5 support comes from pitest-junit5-plugin in the root POM.

SpotBugs — static analysis
bash
./mvnw -B -ntp -Pdev,spotbugs -DskipTests -Dmaven.build.cache.enabled=false clean verify -pl api,points,validators,core -am

The spotbugs profile runs the check goal at verify (effort max, threshold low) and writes <module>/target/spotbugsXml.xml; the build fails on findings. spotbugs-exclude.xml in the root excludes findings which are by design or reviewed (mutable inputs and outputs are not copied, no serialization, extension points). Use clean: Moditect fails on an already modular JAR otherwise.

OWASP Dependency Check
bash
mvn dependency-check:check -pl <module>

Dependency Management Rules

  • All versions live in root `pom.xml` as `<properties>` — never hardcode a version in a child POM.
  • Use ${property.version} references in child POMs.
  • <dependencyManagement> in the root POM controls all third-party and inter-module versions.
  • Inter-module dependencies use ${project.version}.

Key Version Properties

PropertyControls
java.versionJava 17 source/target
junit.versionJUnit Jupiter
mockito.versionMockito
assertj.versionAssertJ
jmh.versionJMH framework
jacoco-maven-plugin.versionJaCoCo
maven-surefire-plugin.versionSurefire, and Failsafe for the slow-tests profile
spotless.versionSpotless formatter
pitest.versionPiTest mutation testing
pitest-junit5-plugin.versionPiTest JUnit 5 test discovery
spotbugs-maven-plugin.versionSpotBugs (spotbugs profile)

Release to Maven Central

Uses maven-release-plugin + maven-gpg-plugin + Sonatype Central Portal plugin.

bash
mvn release:prepare
mvn release:perform

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
572
Repository forks
152
7-day trend score
32

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/skjolber/3d-bin-container-packing/maven/badge)](https://verified-skill.com/skills/skjolber/3d-bin-container-packing/maven)

Something wrong with this skill or its page? Tell us.