Git Product home page Git Product logo

core-java-project-template's Introduction

core-java-project-template

A Template that can be used to start a Core Java Project. In this demo you will find a simple REST Server, based on Javalin. Tests are written for the services itself as well as for the REST Service.

What is offered by this template?

  • TDD with Junit5
  • MutationCoverage with PiTest
  • Compile via Dockerimage
  • Deployment via Dockerimage
  • Development Dockerimage with JDK and Maven
  • Production Dockerimage with JDK
  • Issuetracker via Github Issues
  • Projectplanning via Github Projects
  • Create SBOM (cyclonedx)
  • Dependency Version Management via versions plugin
  • Integration Tests for the REST Server

Vulnerability - Hunting

Even in small projects it is importand to scann for vulnerabilities. But mostly there is no budget for personal projects. What should you do? Well, you can combine different free offerings to see who is reporting faster in wich case. Most vendors are implementing it as Github-PR. So, see who is fast and what you will get. I will list a few provider so that you have a solid base to start with.

Todos

  • Wie mache ich ein release? -jreleaser?
  • Compile in Docker
  • Run in Docker - Webservices..
  • PiTest in Docker mit Source Snapshot

Requirements:

  • podman: Instead of Docker Desktop I´m using podman.

How to start

  • search and replace inside pom.xml - "https://github.com/svenruppert/core-java-project-template" with your coordinates.
  • define what is your JDK you want to use and change it - default is the latest Temurin LTS
    • inside the Docker image definitions
    • inside your pom.xml
  • change the properties pitest-prod-classes and pitest-test-classes
  • change the properties for the deployment repositories
  • change the repositories, you are resolving from. Default is maven central
  • if you have a main class, change the property app.main.class or comment it out
  • create the docker images under _tools/docker
    • develop/build.sh
    • runtime/build.sh
    • application/build.sh - first time after you created your shaded application.jar

Docker Images for Develop and Runtime

Developer Images

Here we are creating an image with JDK and maven (or gradle if you are using it).

Best practices

From time to time update the core Images with the latest updates on OS system base. For this tag the image with the update date, so tht everybody know how old the updated image is.

core-java-project-template's People

Contributors

mend-bolt-for-github[bot] avatar svenruppert avatar

Watchers

 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.