Skip to content

Instantly share code, notes, and snippets.

@MasseGuillaume
Created April 13, 2016 15:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasseGuillaume/c4366469579b7d2b34dd058b90d2cf73 to your computer and use it in GitHub Desktop.
Save MasseGuillaume/c4366469579b7d2b34dd058b90d2cf73 to your computer and use it in GitHub Desktop.
/***
libraryDependencies += "org.apache.maven" % "maven-model-builder" % "3.3.9"
scalaVersion := "2.11.8"
*/
import org.apache.maven.model._
import resolution._
import io._
import building._
import java.io.File
import java.nio.file.Paths
import java.util.Properties
val base = Paths.get("/home/gui/ScalaDuck/src/test/ressources/")
val builder = (new DefaultModelBuilderFactory).newInstance
val request = new DefaultModelBuildingRequest
val processor = new DefaultModelProcessor
val rez = new ModelResolver {
def addRepository(repo: Repository, replace: Boolean): Unit = ()
def addRepository(repo: Repository): Unit = ()
def newCopy(): resolution.ModelResolver = throw new Exception("copy")
def resolveModel(parent: Parent): ModelSource2 = {
resolveModel(parent.getGroupId, parent.getArtifactId, parent.getVersion)
}
def resolveModel(groupId: String, artifactId: String, version: String): ModelSource2 = {
val h :: t = groupId.split('.').toList ::: List(s"$artifactId-$version.pom")
val artifact = base.resolve(Paths.get(h, t:_*))
new FileModelSource(artifact.toFile)
}
}
val jdk = new Properties
jdk.setProperty("java.version", "1.8")
request
.setModelResolver(rez)
.setPomFile(base.resolve("org/apache/spark/spark-core_2.11-1.6.1.pom").toFile)
.setSystemProperties(jdk)
processor.setModelReader(new DefaultModelReader)
builder.build(request).getEffectiveModel
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment