2019-07-16 13:28:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# setup-java
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-12 15:12:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< p  align = "left" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < a  href = "https://github.com/actions/setup-java" > < img  alt = "GitHub Actions status"  src = "https://github.com/actions/setup-java/workflows/Main%20workflow/badge.svg" > < / a > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This action sets up a java environment for use in actions by:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-02 21:39:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  optionally downloading and caching a requested version of java by version and adding to PATH. Default downloads are populated from the [Zulu Community distribution of OpenJDK ](http://static.azul.com/zulu/bin/ ) 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  registering problem matchers for error output 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Usage
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								See [action.yml ](action.yml )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Basic
  
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
									
										
										
										
											2019-07-25 21:24:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-31 01:52:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/checkout@v2  
						 
					
						
							
								
									
										
										
										
											2019-08-01 09:40:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/setup-java@v1  
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    java-version: '9.0.4' # The JDK version to make available on the path.
							 
						 
					
						
							
								
									
										
										
										
											2019-11-22 16:26:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    architecture: x64 # (x64 or x86) - defaults to x64
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  run: java -cp java HelloWorldApp 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Examples of version specifications that the java-version parameter will accept:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:49:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  A major Java version 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  e.g. ```6, 7, 8, 9, 10, 11, 12, 13, ...` ``
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  A semver Java version specification 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  e.g. ```8.0.232, 7.0.181, 11.0.4` ``
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  e.g. ```8.0.x, >11.0.3, >=13.0.1, <8.0.212` ``
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  An early access (EA) Java version 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  e.g. ```14-ea, 15-ea` ``
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  e.g. ```14.0.0-ea, 15.0.0-ea` ``
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  e.g. ```14.0.0-ea.28, 15.0.0-ea.2` `` (syntax for specifying an EA build number)
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Note that, per semver rules, EA builds will be matched by explicit EA version specifications.
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  1.x syntax 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    e.g. ```1.8` `` (same as ` ``8` ``)
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-09 00:45:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    e.g. ```1.8.0.212` `` (same as ` ``8.0.212` ``)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Local file
  
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
									
										
										
										
											2019-07-25 21:24:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-31 01:52:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/checkout@v2  
						 
					
						
							
								
									
										
										
										
											2019-08-01 09:40:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/setup-java@v1  
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
									
										
										
										
											2019-08-13 16:24:39 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    java-version: '4.0.0'
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    architecture: x64
							 
						 
					
						
							
								
									
										
										
										
											2019-11-02 21:39:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    jdkFile: < path  to  jdkFile >  # Optional - jdkFile to install java from. Useful for versions not found on Zulu Community CDN
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  run: java -cp java HelloWorldApp 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Matrix Testing
  
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jobs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  build:
							 
						 
					
						
							
								
									
										
										
										
											2019-08-01 11:06:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    runs-on: ubuntu-16.04
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    strategy:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      matrix:
							 
						 
					
						
							
								
									
										
										
										
											2019-11-02 21:39:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # test against latest update of each major Java version, as well as specific updates of LTS versions:
							 
						 
					
						
							
								
									
										
										
										
											2019-11-29 22:53:14 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        java: [ 1.6, 6.0.83, 7, 7.0.181, 8, 8.0.192, 9.0.x, 10, 11.0.x, 11.0.3, 12, 13 ]
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    name: Java ${{ matrix.java }} sample
							 
						 
					
						
							
								
									
										
										
										
											2019-07-25 21:24:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-31 01:52:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      -  uses: actions/checkout@v2 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      -  name: Setup java
							 
						 
					
						
							
								
									
										
										
										
											2019-08-01 09:40:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        uses: actions/setup-java@v1 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        with:
							 
						 
					
						
							
								
									
										
										
										
											2019-08-13 16:24:39 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          java-version: ${{ matrix.java }}
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      -  run: java -cp java HelloWorldApp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Publishing using Apache Maven
  
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jobs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  build:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    runs-on: ubuntu-latest
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-31 01:52:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  uses: actions/checkout@v2 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Set up JDK 1.8
							 
						 
					
						
							
								
									
										
										
										
											2019-12-04 23:22:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      uses: actions/setup-java@v1 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      with:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        java-version: 1.8
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 08:52:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Build with Maven
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      run: mvn -B package --file pom.xml
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 08:52:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Publish to GitHub Packages Apache Maven
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      run: mvn deploy
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:39:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      env:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        GITHUB_TOKEN: ${{ github.token }} # GITHUB_TOKEN is the default env for the password
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 08:52:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-29 09:26:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Set up Apache Maven Central
							 
						 
					
						
							
								
									
										
										
										
											2019-12-04 23:22:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      uses: actions/setup-java@v1 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-29 09:26:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      with: # running setup-java again overwrites the settings.xml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        java-version: 1.8
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 11:28:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        server-id: maven # Value of the distributionManagement/repository/id field of the pom.xml
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:39:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        server-username: MAVEN_USERNAME # env variable for username in deploy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 08:52:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-29 09:26:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Publish to Apache Maven Central
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      run: mvn deploy
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:39:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      env:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MAVEN_USERNAME: maven_username123
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:44:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:44:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The two `settings.xml`  files created from the above example look like the following.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`settings.xml`  file created for the first deploy to GitHub Packages 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```xml
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< settings  xmlns = "http://maven.apache.org/SETTINGS/1.0.0"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < servers > 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:44:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < server > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < id > github< / id > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < username > ${env.GITHUB_ACTOR}< / username > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < password > ${env.GITHUB_TOKEN}< / password > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / server > 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < server > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < id > gpg.passphrase< / id > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < passphrase > ${env.GPG_PASSPHRASE}< / passphrase > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / server > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / servers > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / settings >  
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:44:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`settings.xml`  file created for the second deploy to Apache Maven Central 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```xml
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< settings  xmlns = "http://maven.apache.org/SETTINGS/1.0.0"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < servers > 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:44:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < server > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < id > maven< / id > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < username > ${env.MAVEN_USERNAME}< / username > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < password > ${env.MAVEN_CENTRAL_TOKEN}< / password > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / server > 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < server > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < id > gpg.passphrase< / id > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < passphrase > ${env.MAVEN_GPG_PASSPHRASE}< / passphrase > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / server > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / servers > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / settings >  
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-12-06 14:50:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***NOTE: The `settings.xml`  file is created in the Actions $HOME directory. If you have an existing `settings.xml`  file at that location, it will be overwritten. See below for using the `settings-path`  to change your `settings.xml`  file location.***
							 
						 
					
						
							
								
									
										
										
										
											2019-12-06 14:50:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-17 16:34:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If `gpg-private-key`  input is provided, the private key will be written to a file in the runner's temp directory, the private key file will be imported into the GPG keychain, and then the file will be promptly removed before proceeding with the rest of the setup process. A cleanup step will remove the imported private key from the GPG keychain after the job completes regardless of the job status. This ensures that the private key is no longer accessible on self-hosted runners and cannot "leak" between jobs (hosted runners are always clean instances).
							 
						 
					
						
							
								
									
										
										
										
											2020-07-15 20:16:31 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:52:51 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								See the help docs on [Publishing a Package ](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#publishing-a-package ) for more information on the `pom.xml`  file.
							 
						 
					
						
							
								
									
										
										
										
											2019-11-28 14:13:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Publishing using Gradle
  
						 
					
						
							
								
									
										
										
										
											2019-12-06 16:21:27 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jobs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  build:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    runs-on: ubuntu-latest
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-31 01:52:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  uses: actions/checkout@v2 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-06 16:21:27 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  name: Set up JDK 1.8
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      uses: actions/setup-java@v1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  name: Build with Gradle
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      run: gradle build
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  name: Publish to GitHub Packages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      run: gradle publish
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      env:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        USERNAME: ${{ github.actor }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        PASSWORD: ${{ secrets.GITHUB_TOKEN }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***NOTE: The `USERNAME`  and `PASSWORD`  need to correspond to the credentials environment variables used in the publishing section of your `build.gradle` .***
							 
						 
					
						
							
								
									
										
										
										
											2019-12-06 16:21:27 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								See the help docs on [Publishing a Package with Gradle ](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-github-packages#example-using-gradle-groovy-for-a-single-package-in-a-repository ) for more information on the `build.gradle`  configuration file.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 14:25:15 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Apache Maven with a settings path
  
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 13:02:21 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								When using an Actions self-hosted runner with multiple shared runners the default `$HOME`  directory can be shared by a number runners at the same time which could overwrite existing settings file. Setting the `settings-path`  variable allows you to choose a unique location for your settings file.
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jobs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  build:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    runs-on: ubuntu-latest
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-01-31 01:52:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  uses: actions/checkout@v2 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Set up JDK 1.8 for Shared Runner
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      uses: actions/setup-java@v1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      with:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        java-version: 1.8
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 14:25:15 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        settings-path: ${{ github.workspace }} # location for the settings.xml file
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 08:52:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Build with Maven
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      run: mvn -B package --file pom.xml
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 08:52:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  name: Publish to GitHub Packages Apache Maven
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 14:25:15 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
							 
						 
					
						
							
								
									
										
										
										
											2019-12-19 15:39:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      env:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        GITHUB_TOKEN: ${{ github.token }}
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 09:37:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 10:56:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# License
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The scripts and documentation in this project are released under the [MIT License ](LICENSE )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Contributions
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Contributions are welcome!  See [Contributor's Guide ](docs/contributors.md )