124 lines
3.1 KiB
Bash
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
|