xiaohongshu
xiaohongshu
maven-build-lifecycle
Use when working with Maven build phases, goals, profiles, or customizing the build process for Java projects.
Full skill instructions
Master Maven's build lifecycle including phases, goals, profiles, and build customization for efficient Java project builds.
Maven's build lifecycle is a well-defined sequence of phases that execute in order. Understanding the lifecycle is essential for effective build configuration and optimization.
1. validate - Validate project structure
2. initialize - Initialize build state
3. generate-sources
4. process-sources
5. generate-resources
6. process-resources - Copy resources to output
7. compile - Compile source code
8. process-classes
9. generate-test-sources
10. process-test-sources
11. generate-test-resources
12. process-test-resources
13. test-compile - Compile test sources
14. process-test-classes
15. test - Run unit tests
16. prepare-package
17. package - Create JAR/WAR
18. pre-integration-test
19. integration-test - Run integration tests
20. post-integration-test
21. verify - Run verification checks
22. install - Install to local repo
23. deploy - Deploy to remote repo
# Compile only
mvn compile
# Compile and run tests
mvn test
# Create package
mvn package
# Install to local repository
mvn install
# Deploy to remote repository
mvn deploy
# Clean and build
mvn clean install
# Skip tests
mvn install -DskipTests
# Skip test compilation and execution
mvn install -Dmaven.test.skip=true
1. pre-clean
2. clean - Delete target directory
3. post-clean
# Clean build artifacts
mvn clean
# Clean specific directory
mvn clean -DbuildDirectory=out
1. pre-site
2. site - Generate documentation
3. post-site
4. site-deploy - Deploy documentation
# Generate site
mvn site
# Generate and deploy site
mvn site-deploy
# Execute phase (runs all previous phases)
mvn package
# Execute specific goal
mvn compiler:compile
mvn surefire:test
mvn jar:jar
# Multiple goals
mvn dependency:tree compiler:compile
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.12.1</version>
<executions>
<execution>
<id>compile-sources</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>dev</env>
<skip.integration.tests>true</skip.integration.tests>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<env>prod</env>
<skip.integration.tests>false</skip.integration.tests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
# Activate by name
mvn install -Pproduction
# Multiple profiles
mvn install -Pproduction,ci
# Deactivate profile
mvn install -P!development
<profile>
<id>jdk17</id>
<activation>
<!-- Activate by JDK version -->
<jdk>17</jdk>
</activation>
</profile>
<profile>
<id>windows</id>
<activation>
<!-- Activate by OS -->
<os>
<family>windows</family>
</os>
</activation>
</profile>
<profile>
<id>ci</id>
<activation>
<!-- Activate by environment variable -->
<property>
<name>env.CI</name>
<value>true</value>
</property>
</activation>
</profile>
<profile>
<id>with-config</id>
<activation>
<!-- Activate by file existence -->
<file>
<exists>src/main/config/app.properties</exists>
</file>
</activation>
</profile>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
</resource>
</resources>
</build>
# application.properties
app.name=${project.name}
app.version=${project.version}
app.environment=${env}
build.timestamp=${maven.build.timestamp}
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>17</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
</build>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<testOutputDirectory>target/test-classes</testOutputDirectory>
</build>
# Build all modules
mvn install
# Build specific module and dependencies
mvn install -pl module-name -am
# Build dependents of a module
mvn install -pl module-name -amd
# Resume from specific module
mvn install -rf :module-name
# Build in parallel
mvn install -T 4
mvn install -T 1C # 1 thread per CPU core
<!-- parent/pom.xml -->
<modules>
<module>common</module>
<module>api</module>
<module>service</module>
<module>web</module>
</modules>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
</includes>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
<parallel>methods</parallel>
<threadCount>4</threadCount>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.2.3</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*IT.java</include>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
</plugin>
# Skip unchanged modules
mvn install -amd
# Use build cache (requires Maven Daemon)
mvnd install
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<compilerArgs>
<arg>-J-Xmx512m</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
# Enable build cache (Maven 4+)
mvn install -Dmaven.build.cache.enabled=true
# Debug mode
mvn install -X
# Error stacktrace
mvn install -e
# Quiet mode
mvn install -q
# View resolved POM
mvn help:effective-pom
# View effective settings
mvn help:effective-settings
# Active profiles
mvn help:active-profiles
# Check plugin versions
mvn versions:display-plugin-updates
# Check dependency versions
mvn versions:display-dependency-updates
mvn clean before releases-ff in CI for quick feedback-T for multi-module projects- name: Build with Maven
run: mvn -B clean verify -Pci
- name: Release
run: mvn -B deploy -Prelease -DskipTests
stage('Build') {
steps {
sh 'mvn -B clean package -DskipTests'
}
}
stage('Test') {
steps {
sh 'mvn -B test'
}
}
stage('Integration Test') {
steps {
sh 'mvn -B verify -DskipUnitTests'
}
}
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience