Class MavenDependencyResolver
- java.lang.Object
-
- org.robolectric.internal.dependency.MavenDependencyResolver
-
- All Implemented Interfaces:
DependencyResolver
public class MavenDependencyResolver extends Object implements DependencyResolver
This class is mainly responsible for fetching Android framework JAR dependencies from MavenCentral. Initially the fetching was being done with maven-ant-tasks, but that dependency become outdated and unmaintained and had security vulnerabilities.There was an initial attempt to use maven-resolver for this, but that depends on a newer version of Apache Http Client that is not compatible with the one expected to be on the classpath for Android 16-18.
This uses only basic
HttpURLConnectionfor fetching. In general using an HTTP client library here could create conflicts with the ones in the Android system.- See Also:
- maven-ant-tasks, Maven Resolver
-
-
Constructor Summary
Constructors Constructor Description MavenDependencyResolver()MavenDependencyResolver(String repositoryUrl, String repositoryId, String repositoryUserName, String repositoryPassword)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ExecutorServicecreateExecutorService()protected FilecreateLockFile()protected MavenArtifactFetchercreateMavenFetcher(String repositoryUrl, String repositoryUserName, String repositoryPassword, File localRepositoryDir, ExecutorService executorService)URLgetLocalArtifactUrl(DependencyJar dependency)URL[]getLocalArtifactUrls(DependencyJar dependency)Returns URLs representing the full transitive dependency graph of the given Maven dependency.URL[]getLocalArtifactUrls(DependencyJar... dependencies)Get an array of local artifact URLs for the given dependencies.protected FilegetLocalRepositoryDir()Locates the local maven repo.
-
-
-
Method Detail
-
getLocalArtifactUrls
public URL[] getLocalArtifactUrls(DependencyJar dependency)
Description copied from interface:DependencyResolverReturns URLs representing the full transitive dependency graph of the given Maven dependency.- Specified by:
getLocalArtifactUrlsin interfaceDependencyResolver
-
getLocalArtifactUrls
public URL[] getLocalArtifactUrls(DependencyJar... dependencies)
Get an array of local artifact URLs for the given dependencies. The order of the URLs is guaranteed to be the same as the input order of dependencies, i.e., urls[i] is the local artifact URL for dependencies[i].
-
createLockFile
protected File createLockFile()
-
getLocalArtifactUrl
public URL getLocalArtifactUrl(DependencyJar dependency)
- Specified by:
getLocalArtifactUrlin interfaceDependencyResolver
-
getLocalRepositoryDir
protected File getLocalRepositoryDir()
Locates the local maven repo.
-
createMavenFetcher
protected MavenArtifactFetcher createMavenFetcher(String repositoryUrl, String repositoryUserName, String repositoryPassword, File localRepositoryDir, ExecutorService executorService)
-
createExecutorService
protected ExecutorService createExecutorService()
-
-