https://github.com/andimarek/discreet
get discreet dependencies for your project
https://github.com/andimarek/discreet
dependencies dependency-manager gradle gradleplugin java
Last synced: about 1 month ago
JSON representation
get discreet dependencies for your project
- Host: GitHub
- URL: https://github.com/andimarek/discreet
- Owner: andimarek
- License: mit
- Created: 2019-03-16T23:05:52.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-18T20:04:51.000Z (over 7 years ago)
- Last Synced: 2025-01-24T18:13:09.822Z (over 1 year ago)
- Topics: dependencies, dependency-manager, gradle, gradleplugin, java
- Language: Java
- Homepage:
- Size: 77.1 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
README
# Discreet (Not released yet)
## Source code dependencies without conflicts
Discreet adds dependencies to your project by import source code while
automatically "rewriting" it to avoid any conflicts.
### Why using discreet
Sometimes you can't use another library:
For example when writing a library itself adding a new dependency puts
the burden on the user to resolve and maintain these transitive dependencies.
The opposite can also be true: you can't use a library in a specific version because it is already
in your dependency tree in a different incompatible version.
Sometimes maintaining a new library is too much work, especially for a few lines of code.
Discreet makes this easier: just open a new PR in this repo and done.
### How it works
Discreet downloads the dependency source code and puts it in a special `{buildDir}/discreet-src` directory.
The source code is also prefixed with your project name to make it private.
For example if you wanna use the `Async` class in your `example` project it will be in the `example.async` package.
## How to use it
Add the `discreet` plugin to your `build.gradle.kts`:
```groovy
plugins {
java
id("com.andimarek.discreet")
}
```
After that you can add `discreet` dependencies to your project.
For example:
```groovy
dependencies {
"discreet"("com.andimarek.discreet:async:2019-03-18T08-44-53:sources")
}
```
## Contribute new modules
Have a look at the existing [modules](modules) directory and create a new PR with new subfolder in it.
## Available modules
### Async
...