Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/slimjar/slimjar
JVM Runtime Dependency Management.
https://github.com/slimjar/slimjar
dependency-manager gradle java java16 java8
Last synced: about 1 month ago
JSON representation
JVM Runtime Dependency Management.
- Host: GitHub
- URL: https://github.com/slimjar/slimjar
- Owner: slimjar
- License: mit
- Created: 2021-03-23T21:09:36.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T10:49:48.000Z (almost 2 years ago)
- Last Synced: 2024-09-30T14:06:08.439Z (about 2 months ago)
- Topics: dependency-manager, gradle, java, java16, java8
- Language: Java
- Homepage:
- Size: 641 KB
- Stars: 56
- Watchers: 5
- Forks: 18
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Slim Jar
Runtime Dependency Management
What is SlimJar?
SlimJar allows you to download and load up dependencies at runtime as an alternative to shading your dependencies. This helps you reduce build output size and share downloaded dependencies between projects at client side. It is built mainly with the gradle eco-system in mind and is easily configurable being an almost a drop-in replacement/add-on to gradle projects.
Why use SlimJar?
SlimJar makes the process of switching out jars easier by providing jars that are much lesser in size, all "slimmed" dependencies are already available and do not need to be explicitly moved back to your working directory during an update or change. This can be extremely useful for users who have lower bandwidth connections to push large updates to production or testing environments. It also provides vital features such as package relocation, module isolation, auto configuration generation...etc with the simplicity of minor tweaks in your build file.
Usage Example
Note: Use the shadowJar task to compile your project
```java
// this needs to be ran before you reference your dependencies
ApplicationBuilder.appending("MyApplicationName").build()
```
(NOTE: If you have specified relocations and are running in a IDE or any environment that does not use the shadowjar-ed build file, use the `ignoreRelocation` flag while running by using `-DignoreRelocation` in your runner arguments)
*build.gradle* GROOVY DSL
```groovy
plugins {
id 'com.github.johnrengelman.shadow' version '6.0.0'
id 'io.github.slimjar' version '1.3.0'
}
dependencies {
implementation slimjar("1.2.6")
slim 'group.id:artifact.id:version'
}slimJar {
relocate 'a.b.c', 'm.n.o'
}
```(For Kotlin DSL, to use the `slimjar` extension in dependencies block, you will need the following import - `import io.github.slimjar.func.slimjar`)
Development setup
```sh
git clone https://github.com/SlimJar/slimjar.git
gradlew test
```
Releases
* https://plugins.gradle.org/plugin/io.github.slimjar
* https://repo.vshnv.tech/releases/io/github/slimjar/slimjar/1.2.1Distributed under the MIT license. See ``LICENSE`` for more information.
Contributing
1. Fork it ()
2. Create your feature branch (`git checkout -b feature/abcd`)
3. Commit your changes (`git commit -am 'Added some feature abcd'`)
4. Push to the branch (`git push origin feature/fooBar`)
5. Create a new Pull Request