Gradm (Gradle dependencies manager) is a new way to manage dependencies easier and more efficient.

Last update: May 3, 2022

Gradm

Maven Central

Gradm (Gradle dependencies manager) is a new way to manage dependencies easier and more efficient.

Why Gradm?

The Gradle version catalogs is an excellent move for us. But it also brings a lot of problems, and becomes more and more painful:

  • The Generated code is fully Java. Usable, and that's it. Not good for reading.
  • No official dependencies update support.
  • Terrible restrictions, like naming: gradle/gradle#18208, gradle/gradle#18201.
  • And more...?

Gradm was born for the above problems. It has an excellent ability of dependencies management and versions update.

Getting Started

In settings.gradle.kts, add the following:

" } } plugins { id("me.omico.gradm") }">
pluginManagement {
    repositories {
        mavenCentral()
    }
    plugins {
        id("me.omico.gradm") version ""
    }
}

plugins {
    id("me.omico.gradm")
}

Create a file named gradm.yml in your root project directory, and add the following:

gradm:
  rule-version: 1 # Gradm rule version, currently has no effect on this
  format: true # default is false, if you haven't specify
  indent: 4 # default is 2, won't take effect if format is false

versions:
  something: "1.0.0" # create your own version

repositories:
  - id: google
    url: https://maven.google.com/
  - id: your-repo # your own repo id
    url: https://repo.example.com/ # your repo url

dependencies:
  - name: Libs # create your own dependency name
    repository: google # from repositories' id
    libraries:
      - # for final use, libs.company.artifact
        module: my.company.lib:artifact # create your own library
        alias: company.artifact # create your own alias, optional
        # You can use either specific version like "1.0.0" or use version variables.
        # It will use the latest version, if you don't specify version.
        # version: "1.0.0"
        version: ${versions.something}
      - # This style is also acceptable
        # note: if your enable format, it will be override by the "module" style above
        group: my.company.lib
        artifact: artifact2
        version: "1.0.0"
        alias: company.artifact2

For more information, please see the example project.

License

Copyright 2022 Omico

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

GitHub

https://github.com/Omico/Gradm
You might also like...

Gradle plugin that parses version updates and assigns them to groups of people.

Notifier Gradle Plugin This gradle plugin serves the need of automating how dependencies are handles in a project. More specifically, it functions usi

Oct 15, 2021

How to write Gradle plugins - answers to common questions and alternative implementation solutions

How to write Gradle plugins - answers to common questions and alternative implementation solutions

Gradle Plugins: Why? How? There is some misunderstanding and confusion about the concept of Plugins in Gradle. This is unfortunate, as it is one of th

Apr 18, 2022

A Gradle plugin enforcing pre-commit and commit-msg Git hooks configuration

A Gradle plugin enforcing pre-commit and commit-msg Git hooks configuration. Conventional-commits-ready.

May 7, 2022

Klinker is a gradle plugin making it possible to link kotlin native executables with custom linkers and options.

Klinker is a gradle plugin making it possible to link kotlin native executables with custom linkers and options. It does this by creating a static library for kotlin compilation, then generates a c+kotlin wrapper that calls into kotlin to start the app, finally using the specified compiler to compile and link the c code and kotlin library into a binary.

Apr 14, 2022

Gradle plugin to check, if rest-controllers are used by clients and clients have suitable rest-interfaces

Verify-Feign Gradle Plugin This plugin will help you to verify all rest-clients and -controllers in a multimodule spring project. It will check, if al

May 11, 2022

The core Gradle plugin and associated logic used for Slack's Android app

slack-gradle-plugin This repository contains the core Gradle plugin and associated logic used for Slack's Android app. This repo is effectively read-o

May 12, 2022

A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

May 9, 2022

Grazel is a Gradle plugin to automate generation of valid Bazel files for a given Android/Kotlin/Java project.

Grazel Grazel stands for Gradle to Bazel. It is a Gradle plugin that enables you to migrate Android projects to Bazel build system in an incremental a

May 20, 2022

Gradle Plugin for Continuous Integration of AppSweep App Testing.

 Gradle Plugin for Continuous Integration of AppSweep App Testing.

This Gradle plugin can be used to continuously integrate app scanning using AppSweep into your Android app build process

Feb 16, 2022
Comments
  • 1. Gradm 2.x

    May be changed at any time

    More compact format for config

    This new format will take advantage of IDEs' language check to prevent duplicate definitions. Also, this will remove more restrictions on aliases.

    repositories:
      google:
        url: https://maven.google.com/
      mavenCentral:
        url: https://repo1.maven.org/maven2/
    
    dependencies:
      mavenCentral:
        com.google.accompanist:
          accompanist-insets:
            alias: accompanist.insets
            version: ${versions.accompanist}
          accompanist-insets-ui:
            alias: accompanist.insetsUi
            version: ${versions.accompanist}
          accompanist-permissions:
            alias: accompanist.permissions
            version: ${versions.accompanist}
          accompanist-swiperefresh:
            alias: accompanist.swipeRefresh
            version: ${versions.accompanist}
          accompanist-systemuicontroller:
            alias: accompanist.systemUiController
            version: ${versions.accompanist}
        com.squareup.okhttp3:
          logging-interceptor:
            alias: okhttp3.interceptor.logging
            version: ${versions.okhttp}
          okhttp3:
            alias: okhttp3
            version: ${versions.okhttp}
          okhttp-dnsoverhttps:
            alias: okhttp3.dnsOverHttps
            version: ${versions.okhttp}
    
    Reviewed by Omico at 2022-04-30 09:18
Related tags
Graphfity is a Gradle Plugin which creates a dependency node diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module application
Graphfity is a Gradle Plugin which creates a dependency node diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module application

Graphfity creates a dependency nodes diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module app

May 21, 2022
Gradle plugin for adds support for integrating Carthage dependencies into a KMM project
Gradle plugin for adds support for integrating Carthage dependencies into a KMM project

Gradle plugin for adds support for integrating Carthage dependencies into a KMM project

Mar 16, 2022
EasyVersion is a Gradle plugin that manage your app or library version.

EasyVersion EasyVersion is a Gradle plugin that manage your app or library version. Before Downloading Create easy_version.json in your root project d

Jan 18, 2022
Gradle plugin that generates a Swift Package Manager manifest and an XCFramework to distribute a Kotlin Multiplatform library for Apple platforms.

Multiplatform Swift Package This is a Gradle plugin for Kotlin Multiplatform projects that generates an XCFramework for your native Apple targets and

May 14, 2022
Gradle plugin to ease Kotlin IR plugin development and usage in multimodule gradle projects

Gradle plugin to ease Kotlin IR plugin development and usage in multimodule gradle projects. Former: kotlin-ir-plugin-adapter-gradle

Mar 8, 2022
Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.
Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.

CompleteKotlin Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms. What this plugin provides This zero-conf

May 12, 2022
Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it

decomposer Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it How to use Run bui

May 10, 2022
Android Gradle Plugin -- Auto Check big image and compress image in building.

McImage I will continue to update, please rest assured to use 中文文档 Android优雅的打包时自动化获取全部res资源 McImage is a Non-invasive plugin for compress all res in

May 18, 2022
A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes.
A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes.

Change Tracker Plugin A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes

Apr 25, 2022
Gradle Plugin for publishing artifacts to Sonatype and Nexus

Introduction Due to Sonatype's strict validation rules, the publishing requirement must be satisfied by every artifact which wants to be published to

May 18, 2022