Skip to content

s4u/setup-maven-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Setup Maven Action

Test

This is composite action which help to prepare GitHub Actions environment for Maven build by calling:

❗ You should not include above actions in your configuration - in other case those will be called twice. ❗

For default values you only need:

    steps:

      - name: Setup Maven Action
        uses: s4u/setup-maven-action@< version >

      - run: mvn -V ...

Params mapping for sub actions

checkout

params destination default
checkout-enabled enabled true
checkout-fetch-depth fetch-depth
checkout-submodules submodules
checkout-path path
checkout-ref ref
checkout-repository repository ${{ github.repository }}
checkout-token token ${{ github.token }}
checkout-ssh-key ssh-key
checkout-persist-credentials persist-credentials false

setup-java

params destination default
java-version java-version 17
java-distribution distribution zulu

cache

A cache action is configured as:

    - uses: actions/cache
      with:
        path: |
          ${{ inputs.cache-path }}
          ${{ inputs.cache-path-add }}
        key: ${{ inputs.cache-prefix }}${{ runner.os }}-jdk${{ inputs.java-version }}-${{ inputs.java-distribution }}-maven${{ inputs.maven-version }}-${{ hashFiles('**/pom.xml') }}
        restore-keys: ${{ inputs.cache-prefix }}${{ runner.os }}-jdk${{ inputs.java-version }}-${{ inputs.java-distribution }}-maven${{ inputs.maven-version }}-

So we can use for action:

params description
cache-enabled enable cache. Default true
cache-path default cache path for Maven with value ~/.m2/repository
cache-path-add additional value for cache path
cache-prefix prefix value for key and restore-keys cache params

setup-maven

params destination default
maven-version maven-version 3.9.9

maven-settings-action

params destination
settings-servers servers
settings-mirrors mirrors
settings-properties properties
settings-sonatypeSnapshots sonatypeSnapshots
settings-proxies proxies
settings-repositories repositories

Testing against different Maven versions

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        maven: [ '3.8.8', '3.9.8' ]

    name: Maven ${{ matrix.maven }} sample

    steps:

      - name: Setup Maven Action
        uses: s4u/setup-maven-action@< version >
        with:
          java-version: 8
          maven-version: ${{ matrix.maven }}

      - run: mvn -V ...

Contributions

  • Contributions are welcome!
  • Give ⭐ - if you want to encourage me to work on a project
  • Don't hesitate to create issues for new features you dream of or if you suspect some bug

Project versioning

This project uses Semantic Versioning. We recommended using the latest and specific release version.

In order to keep your project dependencies up to date you can watch this repository (Releases only) or use automatic tools like Dependabot.

License

The scripts and documentation in this project are released under the MIT License