Groovy-based Maven JAR archetype using Spring Boot with the capability of generating static code analysis reports for Continuous Integration servers.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
archetype
src
.gitignore
CHANGELOG.md
LICENSE
README.md
pom.xml

README.md

choonchernlim-archetype-jar

Groovy-based Maven JAR archetype using Spring Boot with the capability of generating static code analysis reports for Continuous Integration servers.

Latest Release

<dependency>
  <groupId>com.github.choonchernlim</groupId>
  <artifactId>choonchernlim-archetype-jar</artifactId>
  <version>2.0.0</version>
</dependency>

For example:

mvn archetype:generate \
    -DinteractiveMode=false \
    -DarchetypeGroupId=com.github.choonchernlim \
    -DarchetypeArtifactId=choonchernlim-archetype-jar \
    -DarchetypeVersion=2.0.0 \
    -DgroupId=com.github.choonchernlim.testProject \
    -DartifactId=testProject \
    -Dversion=1.0.0-SNAPSHOT

Prerequisites

  • Java 1.8.
  • Maven 3.3.9.

Useful Goals

  • mvn clean spring-boot:run - Executes program.

  • mvn clean test site - Generates test and static code analysis reports.

  • mvn clean package - Generates the following artifacts:-

    • [artifactId]-[version].jar - Lean JAR to be used as a dependency or be pushed to Nexus.
    • [artifactId]-[version]-exec.jar - Executable fat JAR with all dependencies bundled into it.
    • [artifactId]-[version]-sources.jar - Project source files.

Jenkins Integration

  • Create a "Freestyle project" job.

  • Under "Add build steps, select "Invoke top-level Maven targets".

    • Goals: clean test site
    • POM: [project]/pom.xml
  • Configure post-build actions accordingly.

Sample Project Structure

If groupId is com.github.choonchernlim.testProject and artifactId is testProject, the generated project structure looks like this:-

➜  tree . 
.
├── CHANGELOG.md
├── README.md
├── pom.xml
└── src
    ├── main
    │   ├── groovy
    │   │   └── com
    │   │       └── github
    │   │           └── choonchernlim
    │   │               └── testProject
    │   │                   ├── Application.groovy
    │   │                   └── service
    │   │                       └── HelloWorldService.groovy
    │   └── resources
    │       └── application.yml
    └── test
        ├── groovy
        │   └── com
        │       └── github
        │           └── choonchernlim
        │               └── testProject
        │                   └── service
        │                       └── HelloWorldServiceSpec.groovy
        └── resources
            ├── application.yml
            └── logback-test.xml

17 directories, 9 files