maven-settings-action
This action sets up Maven environments for use in GitHub Actions by:
- create maven settings.xml
- set
interactiveModeto 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
You can try our action Setup Maven Action for completely maven environment setup.
See action.yml
default settings.xml
steps:
- uses: s4u/maven-settings-action@v2.8.0
settings.xml with servers section
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
servers: '[{"id": "serverId", "username": "username", "password": "password"}]'
Also you can use path argument if your settings.xml is stored in different location.
All server attributes may be specified:
id(required)usernamepasswordprivateKeypassphrasefilePermissionsdirectoryPermissionsconfiguration
Please refer to the servers documentation for more information.
settings.xml with servers section and additional configuration
steps:
- uses: s4u/maven-settings-action@v2.8.0
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/maven-settings-action@v2.8.0
with:
mirrors: '[{"id": "mirrorId", "name": "mirrorName", "mirrorOf": "mirrorOf", "url": "mirrorUrl"}]'
settings.xml with proxies section
step:
- uses: s4u/maven-settings-action@v2.8.0
with:
proxies: '[{"id": "proxyId", "active": "isActive", "protocol": "proxyProtocol", "host": "proxyHost", "port": "proxyPort", "nonProxyHosts": "nonProxyHost"}]'
settings.xml with properties
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
properties: '[{"propertyName1": "propertyValue1"}, {"propertyName2": "propertyValue2"}]'
settings.xml with https://oss.sonatype.org/content/repositories/snapshots in repository list
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
sonatypeSnapshots: true
settings.xml with https://repository.apache.org/snapshots/ in repository list
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
apacheSnapshots: true
Do not override existing settings.xml, from version 2.0 file is override by default :
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
override: false
Do not add github to server in settings.xml, by default is added:
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
githubServer: false
settings.xml with special server item configuration for oracle repository Oracle Maven Repository
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
oracleServers: '[{"id": "serverId", "username": "username", "password": "password"}]'
settings.xml with Oracle Maven Repository
steps:
- uses: s4u/maven-settings-action@v2.8.0
with:
oracleRepo: true
GitHub actions secrets
It is also possible pass in Github Secrets e.g.
steps:
- uses: s4u/maven-settings-action@v2.8.0
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/maven-settings-action@v2.8.0
- run: mvn verify
License
The scripts and documentation in this project are released under the MIT License.