A simple gradle plugin:
- Manage and switch maven repositories under multiple namespaces;
- Very convenient for private git maven warehouse management.
support gradle version('gradle/wrapper/gradle-wrapper.properties'): gradle-7.6+
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
- project 'build.gradle'
buildscript { repositories { mavenCentral() } dependencies { classpath('io.github.oxsource:maven-repo-plugin:1.0.2') } } ... apply plugin: 'pizzk.gradle.maven.repo' mavenrepo { changing(false) manifests { manifestLocal() manifestGitee(false) } namespace { include(["jitpack"], ['*']) } }
- you can run gradle task 'mavenrepoHelp' for help
Task :usage:mavenrepoHelp ---BASIC-- 1. local root dir: [/Users/pizzk/.m2repo]; 2. manifest.xml config reference:
<?xml version="1.0" encoding="utf-8" ?>
<manifest>
<group name="default">
<repo name="jitpack" url="https://jitpack.io"/>
</group>
<group name="<group>(required)" url="[git:|http:|file:](required)" type="[git](optional)">
<repo name="<name>(required)" url="[@](required|inherit)" type="[@](required|inherit)" branch="[*](optional)" priority="[1-100](optional)"/>
</group>
</manifest>
---USAGE-- 1. changing(changing: Boolean): resolve ignore cache while set changing true; 2. scope(value: List): extension api add to which projects; 3. manifestLocal(): `/Users/pizzk/.m2repo/manifests/manifest.xml`; 4. manifestGitee(changing: Boolean): `https://gitee.com/oxsource/mavenrepo.manifest/raw/main/manifest.xml`; 5. manifest(url: String, changing: Boolean): local or http manifest.xml; 6. include(names: List, scope: List): inject named repo into which project's repositories; ---WORKFLOW-- 1. collect manifests then choose matching repo via include name and priority; 2. clone or pull manifest git repo into(/Users/pizzk/.m2repo/contents) sub dir; 3. repo transform to `maven{name,url}` and inject into `repositories` via policy;