Exemple #1
0
        static bool ShouldIncludeDependency(BindingConfig config, MavenArtifactConfig artifact, Dependency dependency, List <Exception> exceptions)
        {
            // We always care about 'compile' scoped dependencies
            if (dependency.IsCompileDependency())
            {
                return(true);
            }

            // If we're not processing Runtime dependencies then ignore the rest
            if (!config.StrictRuntimeDependencies)
            {
                return(false);
            }

            // The only other thing we may care about is 'runtime', bail if this isn't 'runtime'
            if (!dependency.IsRuntimeDependency())
            {
                return(false);
            }

            // Check 'artifact' list
            if (artifact.ExcludedRuntimeDependencies.OrEmpty().Split(',').Contains(dependency.GroupAndArtifactId(), StringComparer.OrdinalIgnoreCase))
            {
                return(false);
            }

            // Check 'global' list
            if (config.ExcludedRuntimeDependencies.OrEmpty().Split(',').Contains(dependency.GroupAndArtifactId(), StringComparer.OrdinalIgnoreCase))
            {
                return(false);
            }

            return(true);
        }
Exemple #2
0
        public static MavenRepository GetMavenRepository(BindingConfig config, MavenArtifactConfig artifact)
        {
            var(type, location) = GetMavenInfoForArtifact(config, artifact);
            var repo = GetOrCreateRepository(type, location);

            return(repo);
        }
        // Returns artifact output path
        static async Task <string> DownloadPayload(Artifact mvnArt, MavenArtifactConfig mavenArtifact, Project mavenProject, string artifactDir, BindingConfig config)
        {
            var package_prefix = config.DownloadExternalsWithFullName ? $"{mavenArtifact.GroupId}." : string.Empty;

            package_prefix += $"{mavenArtifact.ArtifactId}.";

            var base_path = Path.Combine(artifactDir, package_prefix);

            if (mavenProject.Packaging == "jar" || mavenProject.Packaging == "aar")
            {
                var func = new Func <Task <Stream> >(() => mvnArt.OpenLibraryFile(mavenArtifact.Version, mavenProject.Packaging));
                await TryDownloadFile(func, base_path + mavenProject.Packaging, ErrorLevel.Error);

                return(base_path + mavenProject.Packaging);
            }

            // Sometimes the "Packaging" isn't useful, like "bundle" for Guava or "pom" for KotlinX Coroutines.
            // In this case we're going to try "jar" and "aar" to try to find the real payload

            // Try jar
            var jar_func   = new Func <Task <Stream> >(() => mvnArt.OpenLibraryFile(mavenArtifact.Version, "jar"));
            var jar_result = await TryDownloadFile(jar_func, base_path + "jar", ErrorLevel.Ignore);

            if (jar_result)
            {
                mavenProject.Packaging = "jar";
                return(base_path + "jar");
            }

            // Try aar
            var aar_func   = new Func <Task <Stream> >(() => mvnArt.OpenLibraryFile(mavenArtifact.Version, "aar"));
            var aar_result = await TryDownloadFile(aar_func, base_path + "aar", ErrorLevel.Ignore);

            if (aar_result)
            {
                mavenProject.Packaging = "aar";
                return(base_path + "aar");
            }

            throw new Exception($"Could not find artifact payload {base_path + "jar"}. [Packaging was {mavenProject.Packaging}.]");
        }
Exemple #4
0
        static (MavenRepoType type, string location) GetMavenInfoForArtifact(BindingConfig config, MavenArtifactConfig artifact)
        {
            var template = config.GetTemplateSet(artifact.TemplateSet);

            if (template.MavenRepositoryType.HasValue)
            {
                return(template.MavenRepositoryType.Value, template.MavenRepositoryLocation);
            }

            return(config.MavenRepositoryType, config.MavenRepositoryLocation);
        }