GithubHelp home page GithubHelp logo

maven-template's Introduction

An opinionated template for a Maven project that I feel is a good starting point for a new project. Obviously, additional tweaking will probably be necessary. Notably, I've omitted any major framework such as Spring because there are several valid alternatives (Quarkus, Micronaut, or no framework at all).

Includes:

  • PMD for static analysis, and an opinionated configuration of its Java rules
  • Checkstyle for consistent code style, configured to use Google's style guide
    • In practice, I think Google's rules can be improved upon, so I use a slightly customized rule set
  • Jacoco for code coverage
  • Flatten plugin for cleaning up POMs
  • Enforcer plugin to prevent mistakes in POMs

Dependencies included by default:

  • Lombok to reduce boilerplate
  • Junit for unit tests
  • Slf4j as a logging facade. If you're writing an application, you will need a logging implementation (Logback, Log4j, etc.)

Now what?

If you're writing an application (as opposed to a library), you will probably want to choose some way to bundle your application together with its dependencies, either as a fat JAR (e.g. Spring Boot Maven Plugin, the Maven Shade plugin, or the Maven Assembly plugin), or as a Docker image (e.g. with Spring Boot).

maven-template's People

Contributors

michaelboyles avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.