Class MavenDependencyResolver

  • All Implemented Interfaces:
    org.robolectric.internal.dependency.DependencyResolver

    public class MavenDependencyResolver
    extends Object
    implements org.robolectric.internal.dependency.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 HttpURLConnection for 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 Detail

      • MavenDependencyResolver

        public MavenDependencyResolver()
      • MavenDependencyResolver

        public MavenDependencyResolver​(String repositoryUrl,
                                       String repositoryId,
                                       String repositoryUserName,
                                       String repositoryPassword)
    • Method Detail

      • getLocalArtifactUrls

        public URL[] getLocalArtifactUrls​(org.robolectric.internal.dependency.DependencyJar dependency)
        Specified by:
        getLocalArtifactUrls in interface org.robolectric.internal.dependency.DependencyResolver
      • getLocalArtifactUrls

        public URL[] getLocalArtifactUrls​(org.robolectric.internal.dependency.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].
      • getLocalArtifactUrl

        public URL getLocalArtifactUrl​(org.robolectric.internal.dependency.DependencyJar dependency)
        Specified by:
        getLocalArtifactUrl in interface org.robolectric.internal.dependency.DependencyResolver
      • getLocalRepositoryDir

        protected File getLocalRepositoryDir()
        Locates the local maven repo.
      • createExecutorService

        protected ExecutorService createExecutorService()