126 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #!/bin/bash
 | |
| set -eux
 | |
| 
 | |
| nexus_domain=$(hostname --fqdn)
 | |
| 
 | |
| mkdir -p tmp/use-maven-repository-from-gradle && cd tmp/use-maven-repository-from-gradle
 | |
| 
 | |
| #
 | |
| # test the maven repository from gradle.
 | |
| 
 | |
| # download and install gradle.
 | |
| apt-get install -y unzip
 | |
| wget -qO/tmp/gradle-4.2.1-bin.zip https://services.gradle.org/distributions/gradle-4.2.1-bin.zip
 | |
| unzip -d /opt/gradle /tmp/gradle-4.2.1-bin.zip
 | |
| export PATH="$PATH:/opt/gradle/gradle-4.2.1/bin"
 | |
| 
 | |
| # build and upload an example library.
 | |
| mkdir gradle-greeter-library
 | |
| pushd gradle-greeter-library
 | |
| mkdir -p src/main/java
 | |
| cat >src/main/java/Greeter.java <<'EOF'
 | |
| public final class Greeter {
 | |
|     public static void greet(String name) {
 | |
|         System.out.println("Hello " + name);
 | |
|     }
 | |
| }
 | |
| EOF
 | |
| cat >settings.gradle <<'EOF'
 | |
| rootProject.name = 'gradle-greeter'
 | |
| EOF
 | |
| cat >build.gradle <<'EOF'
 | |
| // see https://docs.gradle.org/4.2.1/userguide/java_library_plugin.html
 | |
| // see https://docs.gradle.org/4.2.1/userguide/maven_plugin.html
 | |
| 
 | |
| apply plugin: 'java-library'
 | |
| apply plugin: 'maven'
 | |
| 
 | |
| version = '1.0.0'
 | |
| sourceCompatibility = 1.8
 | |
| targetCompatibility = 1.8
 | |
| 
 | |
| jar {
 | |
|     manifest {
 | |
|         attributes(
 | |
|             'Implementation-Title': 'Gradle Greeter Example',
 | |
|             'Implementation-Version': version
 | |
|         )
 | |
|     }
 | |
| }
 | |
| 
 | |
| uploadArchives {
 | |
|     repositories {
 | |
|         mavenDeployer {
 | |
|             repository(url: System.env.NEXUS_REPOSITORY_URL) {
 | |
|                 authentication(
 | |
|                     userName: System.env.NEXUS_REPOSITORY_USERNAME,
 | |
|                     password: System.env.NEXUS_REPOSITORY_PASSWORD)
 | |
|             }
 | |
|             pom.groupId = 'com.example'
 | |
|         }
 | |
|     }
 | |
| }
 | |
| EOF
 | |
| gradle build
 | |
| unzip -l build/libs/gradle-greeter-1.0.0.jar
 | |
| export NEXUS_REPOSITORY_URL="https://$nexus_domain/repository/maven-releases"
 | |
| export NEXUS_REPOSITORY_USERNAME='alice.doe'
 | |
| export NEXUS_REPOSITORY_PASSWORD='password'
 | |
| gradle upload
 | |
| popd
 | |
| 
 | |
| # build an example application that uses our gradle-greeter library from our nexus repository.
 | |
| mkdir gradle-greeter-application
 | |
| pushd gradle-greeter-application
 | |
| mkdir -p src/main/java
 | |
| cat >src/main/java/Greet.java <<'EOF'
 | |
| public final class Greet {
 | |
|     public static void main(String[] args) {
 | |
|         Greeter.greet("World");
 | |
|     }
 | |
| }
 | |
| EOF
 | |
| cat >settings.gradle <<'EOF'
 | |
| rootProject.name = 'gradle-greeter-application'
 | |
| EOF
 | |
| cat >build.gradle <<EOF
 | |
| // see https://docs.gradle.org/4.2.1/userguide/java_plugin.html
 | |
| // see https://docs.gradle.org/4.2.1/userguide/application_plugin.html
 | |
| // see http://imperceptiblethoughts.com/shadow/
 | |
| 
 | |
| plugins {
 | |
|     id 'com.github.johnrengelman.shadow' version '2.0.1'
 | |
| }
 | |
| 
 | |
| apply plugin: 'application'
 | |
| 
 | |
| mainClassName = 'Greet'
 | |
| version = '1.0.0'
 | |
| sourceCompatibility = 1.8
 | |
| targetCompatibility = 1.8
 | |
| 
 | |
| jar {
 | |
|     manifest {
 | |
|         attributes(
 | |
|             'Implementation-Title': 'Gradle Greeter Application Example',
 | |
|             'Implementation-Version': version,
 | |
|             'Main-Class': mainClassName
 | |
|         )
 | |
|     }
 | |
| }
 | |
| 
 | |
| repositories {
 | |
|     maven {
 | |
|         url 'https://$nexus_domain/repository/maven-public'
 | |
|     }
 | |
| }
 | |
| 
 | |
| dependencies {
 | |
|     compile 'com.example:gradle-greeter:1.0.0'
 | |
| }
 | |
| EOF
 | |
| gradle shadowJar
 | |
| unzip -l build/libs/gradle-greeter-application-1.0.0-all.jar
 | |
| java -jar build/libs/gradle-greeter-application-1.0.0-all.jar
 | |
| popd
 |