Skip to content

Instantly share code, notes, and snippets.

@jimbaker
Created February 4, 2014 04:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jimbaker/8798273 to your computer and use it in GitHub Desktop.
Save jimbaker/8798273 to your computer and use it in GitHub Desktop.
Translation of InstallArtifacts.java from aether-demo-snippets
# analog to InstallArtifacts.java
# run from aether-demo-snippets dir; relies on target/, pom.xml
from java.io import File
from org.eclipse.aether import RepositorySystem
from org.apache.maven.repository.internal import MavenRepositorySystemUtils
from org.eclipse.aether.artifact import DefaultArtifact
from org.eclipse.aether.installation import InstallRequest
from org.eclipse.aether.spi.connector import RepositoryConnectorFactory
from org.eclipse.aether.util.artifact import SubArtifact
from org.eclipse.aether.repository import LocalRepository
from org.eclipse.aether.connector.basic import BasicRepositoryConnectorFactory
# need to get SPI (service provider implementation), transport;
# note this is resolved by the maven build process itself!
from org.eclipse.aether.spi.connector.transport import TransporterFactory
from org.eclipse.aether.transport.file import FileTransporterFactory
from org.eclipse.aether.transport.http import HttpTransporterFactory
# some basic wiring
locator = MavenRepositorySystemUtils.newServiceLocator()
locator.addService(RepositoryConnectorFactory, BasicRepositoryConnectorFactory)
locator.addService(TransporterFactory, FileTransporterFactory)
locator.addService(TransporterFactory, HttpTransporterFactory)
system = locator.getService(RepositorySystem)
session = MavenRepositorySystemUtils.newSession()
localRepo = LocalRepository("target/local-repo") # assumes directory is created
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo))
# describe the install; pom.xml is in aether-demo-snippets
jarArtifact = DefaultArtifact("test", "org.eclipse.aether.examples", "", "jar", "0.1-SNAPSHOT")
jarArtifact = jarArtifact.setFile(File( "src/main/data/demo.jar" ))
pomArtifact = SubArtifact(jarArtifact, "", "pom")
pomArtifact = pomArtifact.setFile(File("pom.xml"))
# and actually do it
installRequest = InstallRequest()
installRequest.addArtifact(jarArtifact).addArtifact(pomArtifact)
system.install(session, installRequest)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment