Skip to content
This repository has been archived by the owner on May 24, 2020. It is now read-only.

sebhoss/maven-build-process

Repository files navigation

Maven Build Process Discuss on Google Groups Chat on IRC

CC Zero Maven Central Docker Hub Open Hub statistics Build Status

Bunch of POMs that help setting up a Maven based build process.

Usage

Maven Parent

Inherit from one of the parents like this:

  <!-- for early prototypes -->
  <parent>
    <groupId>de.xn--ho-hia.maven.parents</groupId>
    <artifactId>maven-parents-java-prototype</artifactId>
    <version>${version.parent}</version>
  </parent>

  <!-- for stable projects -->
  <parent>
    <groupId>de.xn--ho-hia.maven.parents</groupId>
    <artifactId>maven-parents-java-stable</artifactId>
    <version>${version.parent}</version>
  </parent>

Specify SCM, Issue Management, CI Management, and Distribution Management sections of your POM in case you want to deploy into Maven Central.

Docker Build Environment

The build environment can be used together with docker-compose like this:

version: '2'
services:
  verify-project:
    image: sebhoss/maven-build-environment:latest
    container_name: my-verifier
    volumes:
      - "./:/project"
    working_dir: /workspace
    command: bash -c "cp -af /project/. . && mvn clean verify -s /config/local-nexus-mirror.xml -Dmaven.repo.local=/repository"
    networks:
      - nexus
networks:
  nexus:
    external:
      name: nexus_default

Execute this by calling docker-compose run --rm verify-project. Executing builds directly inside the /project directory will most likely cause a permission problem on the host system. Therefore the above docker-compose.yml file copies the project source into the /workspace directory first. The --rm option makes sure that everything gets cleaned up nicely once execution is finished. Specify a container_name in case you want to easily reference the running container. The container includes two predefined Maven settings files:

Use them together with docker networks like in the above example to run your builds against different Maven repositories. The local /repository directory already includes some artifacts. Re-use it in order to cut down on build time.

License

To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.

You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.