Last active
January 12, 2020 00:47
-
-
Save melix/7704daf5d5f0285f22b4582f84c3bf5f to your computer and use it in GitHub Desktop.
Publish an additional fat jar with Gradle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
plugins { | |
id 'java-library' | |
id 'com.github.johnrengelman.shadow' version '5.2.0' | |
id 'maven-publish' | |
} | |
group = 'com.acme' | |
version = '1.0.0' | |
repositories { | |
jcenter() | |
} | |
java { | |
sourceCompatibility = JavaVersion.VERSION_1_8 | |
targetCompatibility = JavaVersion.VERSION_1_8 | |
} | |
dependencies { | |
api 'org.apache.commons:commons-math3:3.6.1' | |
implementation 'com.google.guava:guava:28.0-jre' | |
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.1' | |
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.1' | |
} | |
configurations { | |
fatJarRuntimeElements { | |
canBeResolved = false | |
canBeConsumed = true | |
attributes { | |
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME)) | |
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY)) | |
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements, LibraryElements.JAR)) | |
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EMBEDDED)) // means no relocation of packages | |
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) | |
} | |
outgoing.artifact(shadowJar) | |
} | |
} | |
components.java { | |
addVariantsFromConfiguration(configurations.fatJarRuntimeElements) { | |
mapToOptional() // make it a Maven optional dependency | |
} | |
} | |
test { | |
useJUnitPlatform() | |
} | |
publishing { | |
repositories { | |
maven { | |
url "${buildDir}/repo" | |
} | |
} | |
publications { | |
maven(MavenPublication) { | |
from components.java | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"formatVersion": "1.1", | |
"component": { | |
"group": "com.acme", | |
"module": "shadow-example", | |
"version": "1.0.0", | |
"attributes": { | |
"org.gradle.status": "release" | |
} | |
}, | |
"createdBy": { | |
"gradle": { | |
"version": "6.0.1", | |
"buildId": "c6wz7vnfqzhatcvyuxk6cysfwy" | |
} | |
}, | |
"variants": [ | |
{ | |
"name": "apiElements", | |
"attributes": { | |
"org.gradle.category": "library", | |
"org.gradle.dependency.bundling": "external", | |
"org.gradle.jvm.version": 8, | |
"org.gradle.libraryelements": "jar", | |
"org.gradle.usage": "java-api" | |
}, | |
"dependencies": [ | |
{ | |
"group": "org.apache.commons", | |
"module": "commons-math3", | |
"version": { | |
"requires": "3.6.1" | |
} | |
} | |
], | |
"files": [ | |
{ | |
"name": "shadow-example-1.0.0.jar", | |
"url": "shadow-example-1.0.0.jar", | |
"size": 838, | |
"sha512": "b2e5da173e25217aa203b6953e935d354bf62425088aaeba22a0dff5a09b5000c80a116225e271b7ab5c6d916de0a4c7023450b6137d23b43894a2395efcb61e", | |
"sha256": "cd9772b053a92a43de4194213e5b8ea6da064999c96f8b6067661b797e2c160b", | |
"sha1": "9fb03a0a562eba278391942fb4956f2977b165b3", | |
"md5": "16d42814a37c111c0b285d5742672cf5" | |
} | |
] | |
}, | |
{ | |
"name": "runtimeElements", | |
"attributes": { | |
"org.gradle.category": "library", | |
"org.gradle.dependency.bundling": "external", | |
"org.gradle.jvm.version": 8, | |
"org.gradle.libraryelements": "jar", | |
"org.gradle.usage": "java-runtime" | |
}, | |
"dependencies": [ | |
{ | |
"group": "com.google.guava", | |
"module": "guava", | |
"version": { | |
"requires": "28.0-jre" | |
} | |
}, | |
{ | |
"group": "org.apache.commons", | |
"module": "commons-math3", | |
"version": { | |
"requires": "3.6.1" | |
} | |
} | |
], | |
"files": [ | |
{ | |
"name": "shadow-example-1.0.0.jar", | |
"url": "shadow-example-1.0.0.jar", | |
"size": 838, | |
"sha512": "b2e5da173e25217aa203b6953e935d354bf62425088aaeba22a0dff5a09b5000c80a116225e271b7ab5c6d916de0a4c7023450b6137d23b43894a2395efcb61e", | |
"sha256": "cd9772b053a92a43de4194213e5b8ea6da064999c96f8b6067661b797e2c160b", | |
"sha1": "9fb03a0a562eba278391942fb4956f2977b165b3", | |
"md5": "16d42814a37c111c0b285d5742672cf5" | |
} | |
] | |
}, | |
{ | |
"name": "fatJarRuntimeElements", | |
"attributes": { | |
"org.gradle.category": "library", | |
"org.gradle.dependency.bundling": "embedded", | |
"org.gradle.jvm.version": 8, | |
"org.gradle.libraryelements": "jar", | |
"org.gradle.usage": "java-runtime" | |
}, | |
"files": [ | |
{ | |
"name": "shadow-example-1.0.0-all.jar", | |
"url": "shadow-example-1.0.0-all.jar", | |
"size": 5146288, | |
"sha512": "32af947065bcaa341d36033b00d94c267a44256fede08f570a479ec6415cb31ba31ec41ad6a0b51d37f1b3631e98b2960764d2d7ba709f29bad57e3519b5c3b9", | |
"sha256": "4b746b2f8a1098f9441e20037ec8fd4ec5467023732d9e93d09d0a632c8e2b6c", | |
"sha1": "4fc29a2f15a3ed7ea0b84ecdb17938777376cbe2", | |
"md5": "271b1bd9a7c1a73e0e7f06516e8afc90" | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment