Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/choonchernlim/build-reports

Maven parent POM for generating build reports for CI servers, pushing artifacts to Sonatype OSSRH and site documentation to GitHub
https://github.com/choonchernlim/build-reports

java jenkins maven parent-pom

Last synced: 2 days ago
JSON representation

Maven parent POM for generating build reports for CI servers, pushing artifacts to Sonatype OSSRH and site documentation to GitHub

Awesome Lists containing this project

README

        

# Build Reports

In effort to keep the actual Maven project's pom.xml concise and clean, this parent POM generates various build reports
for Maven site and Continuous Integration Servers ([Jenkins](https://jenkins-ci.org/), [SonarQube](http://www.sonarqube.org/), etc).

This parent POM also includes a profile that allows you to push:-
* project artifacts to [Sonatype OSSRH (OSS Repository Hosting)](https://oss.sonatype.org)
* Maven generated site to project [GitHub](https://github.com/) page

## How to Use

Add the following configuration to your project's pom.xml:-

```xml


com.github.choonchernlim
build-reports
0.3.5


...

```

### Jenkins Integration

```xml
mvn clean test site
```

### SonarQube Integration

Create a Maven profile, for example:-

```xml


sonarqube

...
src/main/java
src/test/java
jacoco
${project.build.directory}/surefire-reports
${jacoco.reportPath}
${jacoco.itReportPath}

```

Run the following goals and profile:-

```xml
mvn clean test sonar:sonar -Psonarqube
```

### Deploy to Sonatype OSSRH

```xml
mvn clean deploy -Possrh-deploy
```

### Deploy Site to GitHub

```xml
mvn clean test site -Possrh-deploy
```

## Important Notes

* If the JaCoCo web report is not rendering properly in the GitHub page, please read this post for solution: [JaCoCo Web Report Not Rendering Properly in GitHub Pages](http://myshittycode.com/2015/07/22/jacoco-web-report-not-rendering-properly-in-github-pages/)

## Build Plugins

* [Surefire Maven Plugin](http://maven.apache.org/surefire/maven-surefire-plugin/) - Runs unit tests.
* [Maven Failsafe Plugin](http://maven.apache.org/surefire/maven-failsafe-plugin/) - Runs integration tests.
* [Maven Site Plugin](http://maven.apache.org/plugins/maven-site-plugin/) - Generates site.
* [JaCoCo Maven Plugin](http://www.eclemma.org/jacoco/) - Code coverage report for JVM languages.
* [Maven Project Info Reports Plugin](https://maven.apache.org/plugins/maven-project-info-reports-plugin/) - Generates reports information about the project.
* [Maven Surefire Reports Plugin](http://maven.apache.org/surefire/maven-surefire-report-plugin/) - Parses generated test results from both unit tests and integration tests.
* [Maven Javadoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) - Generates Javadoc.
* [Maven JXR Plugin](http://maven.apache.org/plugins/maven-jxr-plugin/) - Generates a cross-reference of the project's sources.
* [JDepend Maven Plugin](http://www.mojohaus.org/jdepend-maven-plugin/) - Generates design quality metrics for each Java package.
* [Maven Javadoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) - Generates Javadoc.
* [Maven PMD Plugin](http://maven.apache.org/plugins/maven-pmd-plugin/) - Generates PMD and CPD reports.
* [FindBugs Maven Plugin](http://www.mojohaus.org/findbugs-maven-plugin/) - Inspects Java bytecode for occurrences of bug patterns.
* [TagList Maven Plugin](http://www.mojohaus.org/taglist-maven-plugin/) - Generates a report on various tags found in the code.
* [Sonar Maven Plugin](http://sonarsource.github.io/sonar-maven/) - Publishes results to Sonarqube.
* [Versions Maven plugin](http://www.mojohaus.org/versions-maven-plugin/) - Handles dependencies and plugins date.

## Profile: "ossrh-deploy"

* [Nexus Staging Maven Plugin](https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin) - Deploys artifacts to Sonatype OSSRH.
* [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/) - Generates source code.
* [GitHub Site Plugin](https://github.com/github/maven-plugins) - Generates Maven site in project GitHub page.
* [Maven Javadoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) - Generates Javadoc.
* [Maven GPG Plugin](http://maven.apache.org/plugins/maven-gpg-plugin/) - Signs all of the project's attached artifacts with GnuPG..