Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/choonchernlim/spring-boot-ci
Spring-Boot-friendly parent POM to 1) generate static code analysis reports for CI server, 2) deploy artifacts to Sonatype OSSRH, and 3) deploy site documentation to GitHub.
https://github.com/choonchernlim/spring-boot-ci
java jenkins maven spring spring-boot
Last synced: about 2 months ago
JSON representation
Spring-Boot-friendly parent POM to 1) generate static code analysis reports for CI server, 2) deploy artifacts to Sonatype OSSRH, and 3) deploy site documentation to GitHub.
- Host: GitHub
- URL: https://github.com/choonchernlim/spring-boot-ci
- Owner: choonchernlim
- License: mit
- Created: 2017-05-15T18:40:17.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-03T21:50:26.000Z (about 6 years ago)
- Last Synced: 2024-11-14T12:53:41.520Z (about 2 months ago)
- Topics: java, jenkins, maven, spring, spring-boot
- Size: 104 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# spring-boot-ci
This parent POM:-
* Consolidates static code analysis report configuration in one place and declutters app's `pom.xml`.
* Generates reports for Continuous Integration servers ([Jenkins](https://jenkins-ci.org/), etc) and Maven site.
* Enables Spring Boot by inheriting from the `spring-boot-starter-parent` to leverage the full power of Spring Boot.
* While an app may enable Spring Boot without inheriting from the `spring-boot-starter-parent`, it can only leverage Spring Boot's dependency management but not the plugin management. Furthermore, it requires the app to re-configure several plugins used by Spring Boot to continue working properly.
* Enables Groovy compiler.
* Includes a Maven profile to deploy:-
* Project artifacts to [Sonatype OSSRH (OSS Repository Hosting)](https://oss.sonatype.org).
* Maven generated site to project [GitHub](https://github.com/) page.## Parent POM Dependency
```xml
com.github.choonchernlim
spring-boot-ci
0.4.0
...```
### Jenkins Integration
```xml
mvn clean test site
```### Deploy to Sonatype OSSRH
```xml
mvn clean deploy -P ossrh
```### Deploy Site to GitHub
```xml
mvn clean test site -P ossrh
```## Build Plugins
* [Maven Compiler Plugin](https://maven.apache.org/plugins/maven-compiler-plugin/) - Enables Groovy compiler.
* [Groovy Eclipse Maven Plugin](https://github.com/groovy/groovy-eclipse/wiki/Groovy-Eclipse-Maven-plugin) - Handles possible missing `src/main/java` and `src/test/java` when using Groovy.
* [Spring Boot Maven Plugin](http://docs.spring.io/spring-boot/docs/current/maven-plugin/) - Enables Spring Boot support.
* [Versions Maven plugin](http://www.mojohaus.org/versions-maven-plugin/) - Handles dependencies and plugins date.
* [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 Enforcer Plugin](http://maven.apache.org/enforcer/maven-enforcer-plugin/) Bans certain dependencies and ensures minimum Maven version is met.
* [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/) - Generates source JAR file.## Reporting Plugins
* [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.
* [JaCoCo Maven Plugin](http://www.eclemma.org/jacoco/) - Code coverage report for JVM languages.
* [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 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.## 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..## Troubleshooting
* 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/)