Maven Site Configuration in pom.xml
📌 Definition
In Apache Maven, site configuration in pom.xml is used to define how the project website (reports + documentation) is generated and published.
🔹 Basic Site Plugin Configuration
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</plugin>
</plugins>
</build>
🔹 Reporting Section Configuration
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.4.5</version>
</plugin>
</plugins>
</reporting>
➡ This generates reports like:
- Project summary
- Dependencies
- Team info
🔹 Site Deployment Configuration
<distributionManagement>
<site>
<id>company-site</id>
<url>scp://example.com/var/www/mysite</url>
</site>
</distributionManagement>
➡ Used for mvn site-deploy
🔹 Custom Site Content (Optional)
Add files in:
src/site/
Supported formats:
- Markdown (
.md) - APT (
.apt) - XML (
site.xml)
🔹 Full Example
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<site>
<id>my-site</id>
<url>scp://example.com/www/project-site</url>
</site>
</distributionManagement>
</project>
🔹 Commands
mvn site
➡ Generate site
mvn site-deploy
➡ Deploy site
🔹 Key Points
<build>→ Defines site plugin<reporting>→ Adds reports<distributionManagement>→ Deploys sitesrc/site→ Custom content
🔹 Importance
- Centralized project documentation
- Easy report generation
- Useful for team collaboration
- Supports CI/CD pipelines
