nexus-vagrant/provision/use-maven-repository-from-g...

124 lines
3.1 KiB
Bash

#!/bin/bash
set -eux
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='http://localhost:8081/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 'http://localhost:8081/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