Skip to content

Instantly share code, notes, and snippets.

@riprasad
Created September 12, 2021 20:45
Show Gist options
  • Save riprasad/e14d0508e8c086426754c5013f2bdc6e to your computer and use it in GitHub Desktop.
Save riprasad/e14d0508e8c086426754c5013f2bdc6e to your computer and use it in GitHub Desktop.
import groovy.util.logging.Slf4j
import org.apache.maven.model.Build
import org.apache.maven.model.Dependency
import org.apache.maven.model.DependencyManagement
import org.apache.maven.model.Plugin
import org.codehaus.plexus.util.xml.Xpp3Dom
import org.commonjava.maven.atlas.ident.ref.SimpleProjectVersionRef
import org.commonjava.maven.ext.common.ManipulationException
import org.commonjava.maven.ext.common.model.Project
import org.commonjava.maven.ext.core.groovy.BaseScript
import org.commonjava.maven.ext.core.groovy.InvocationPoint
import org.commonjava.maven.ext.core.groovy.InvocationStage
import org.commonjava.maven.ext.core.groovy.PMEBaseScript
import org.commonjava.maven.ext.core.ManipulationSession
import org.commonjava.maven.ext.core.state.RESTState
import org.commonjava.maven.ext.io.rest.Translator
import org.commonjava.maven.atlas.ident.ref.SimpleProjectRef
@InvocationPoint(invocationPoint = InvocationStage.FIRST)
@PMEBaseScript BaseScript pme
@Slf4j
public class MangleVersion {
BaseScript pme;
def execute() {
log.info "##########################################################################################################################################"
pme.projects.each {
project ->
def deps = [project.model?.dependencies, project.model?.dependencyManagement?.dependencies].flatten() //aggregate the 2 sets in a single list
deps.removeAll { it == null } // remove nulls
log.info " # Scanning Module => $project.groupId:$project.artifactId"
// artifact 'org.everit.json.schema' is available from group 'org.everit.json' in Indy
overrideGroupId(deps, "org.everit.json", "com.github.everit-org.json-schema")
}
log.info "##########################################################################################################################################"
}
def overrideGroupId(deps, String oldGroup, String newGroup) {
deps.each {
dep ->
log.debug "$dep"
if (dep.groupId == oldGroup) {
log.info "\t--------------------------------------------------------------------------------------------------------"
log.info "\tCustom Adjustments : Overriding groupId: '$oldGroup' ---> $newGroup"
log.info "\t--------------------------------------------------------------------------------------------------------"
log.info "\tOld Coordinates: $dep"
dep.groupId = newGroup
log.info "\tNew Coordinates: $dep"
log.info "\t------------------------------------------ GroupId Overriden -------------------------------------------"
log.info ""
}
}
}
}
MangleVersion mangleVersion = new MangleVersion(pme: pme)
mangleVersion.execute()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment