Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
settings

GitHub Action

maven-settings-action

v2.4.1

maven-settings-action

settings

maven-settings-action

Prepare maven settings.xml

Installation

Copy and paste the following snippet into your .yml file.

              

- name: maven-settings-action

uses: s4u/[email protected]

Learn more about this action in s4u/maven-settings-action

Choose a version

maven-settings-action

Test Audit

This action sets up Maven environments for use in GitHub Actions by:

  • create maven settings.xml
  • set interactiveMode to false - useful in CI system
  • after job finish generated settings.xml will be removed to prevent cache or left sensitive data on build system
  • add server to servers with id=github, username=$GITHUB_ACTOR and password=$GITHUB_TOKEN

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 to use 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.

Usage

See action.yml

default settings.xml

steps:
- uses: s4u/[email protected]

settings.xml with servers section

steps:
- uses: s4u/[email protected]
  with:
    servers: '[{"id": "serverId", "username": "username", "password": "password"}]'

All server attributes may be specified:

  • id (required)
  • username
  • password
  • privateKey
  • passphrase
  • filePermissions
  • directoryPermissions
  • configuration

Please refer to the servers documentation for more information.

settings.xml with servers section and additional configuration

steps:
- uses: s4u/[email protected]
  with:
    servers: |
      [{
        "id": "serverId",
        "configuration": {
          "item1": "value1",
          "item2": {
            "item21": "value21",
            "item22": "value22"
          }
        }
      }]

result will be:

<server>
    <id>serverId</id>
    <configuration>
      <item1>value1</item1>
      <item2>
        <item21>value21</item21>
        <item22>value22</item22>
      </item1>
    </configuration>
</server></servers>

settings.xml with mirrors section

steps:
- uses: s4u/[email protected]
  with:
    mirrors: '[{"id": "mirrorId", "name": "mirrorName", "mirrorOf": "mirrorOf", "url": "mirrorUrl"}]'

settings.xml with properties

steps:
- uses: s4u/[email protected]
  with:
    properties: '[{"propertyName1": "propertyValue1"}, {"propertyName2": "propertyValue2"}]'

settings.xml with https://oss.sonatype.org/content/repositories/snapshots in repository list

steps:
- uses: s4u/[email protected]
  with:
    sonatypeSnapshots: true

settings.xml with https://repository.apache.org/snapshots/ in repository list

steps:
- uses: s4u/[email protected]
  with:
    apacheSnapshots: true

Do not override existing settings.xml, from version 2.0 file is override by default :

steps:
- uses: s4u/[email protected]
  with:
    override: false

Do not add github to server in settings.xml, by default is added:

steps:
- uses: s4u/[email protected]
  with:
    githubServer: false

settings.xml with special server item configuration for oracle repository Oracle Maven Repository

steps:
- uses: s4u/[email protected]
  with:
    oracleServers: '[{"id": "serverId", "username": "username", "password": "password"}]'

settings.xml with Oracle Maven Repository

steps:
- uses: s4u/[email protected]
  with:
    oracleRepo: true

GitHub actions secrets

It is also possible pass in Github Secrets e.g.

steps:
- uses: s4u/[email protected]
  with:
    servers: |
      [{
          "id": "sonatype-nexus-snapshots",
          "username": "${{ secrets.SONATYPE_USERNAME }}",
          "password": "${{ secrets.SONATYPE_PASSWORD }}"
      }]

Note: secrets are not passed in if the workflow is triggered from a forked repository. See here for further information. This can be avoided by using if triggers on the job e.g. if: github.event_name == 'push'.

Notes

maven-settings-action should be put at the latest position before maven run in order to avoid override setting.xml by another action

  steps:
      - uses: actions/checkout@v2

      - uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: maven-

      - uses: actions/setup-java@v1
        with:
          java-version: 8

      - uses: s4u/[email protected]

      - run: mvn verify

License

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