1919
2020package  org.elasticsearch.hadoop.gradle 
2121
22+ import  org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask 
2223import  org.elasticsearch.hadoop.gradle.buildtools.DependenciesInfoPlugin 
2324import  org.elasticsearch.hadoop.gradle.buildtools.DependencyLicensesTask 
2425import  org.elasticsearch.hadoop.gradle.buildtools.LicenseHeadersTask 
25- import  org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask 
2626import  org.elasticsearch.hadoop.gradle.buildtools.UpdateShasTask 
2727import  org.elasticsearch.hadoop.gradle.buildtools.info.BuildParams 
2828import  org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin 
2929import  org.gradle.api.Plugin 
3030import  org.gradle.api.Project 
3131import  org.gradle.api.Task 
3232import  org.gradle.api.XmlProvider 
33- import  org.gradle.api.artifacts.Configuration 
34- import  org.gradle.api.artifacts.Dependency 
35- import  org.gradle.api.artifacts.DependencyResolveDetails 
36- import  org.gradle.api.artifacts.ModuleDependency 
37- import  org.gradle.api.artifacts.ProjectDependency 
38- import  org.gradle.api.artifacts.ResolutionStrategy 
33+ import  org.gradle.api.artifacts.* 
34+ 
3935import  org.gradle.api.attributes.LibraryElements 
4036import  org.gradle.api.attributes.Usage 
4137import  org.gradle.api.component.SoftwareComponentFactory 
4238import  org.gradle.api.file.CopySpec 
4339import  org.gradle.api.file.FileCollection 
4440import  org.gradle.api.java.archives.Manifest 
41+ import  org.gradle.api.plugins.BasePluginExtension 
4542import  org.gradle.api.plugins.JavaLibraryPlugin 
4643import  org.gradle.api.plugins.JavaPlugin 
4744import  org.gradle.api.plugins.scala.ScalaPlugin 
4845import  org.gradle.api.provider.Provider 
4946import  org.gradle.api.publish.maven.MavenPom 
5047import  org.gradle.api.publish.maven.MavenPublication 
5148import  org.gradle.api.publish.maven.tasks.GenerateMavenPom 
52- import  org.gradle.api.publish.maven.tasks.PublishToMavenRepository 
5349import  org.gradle.api.tasks.Copy 
5450import  org.gradle.api.tasks.SourceSet 
5551import  org.gradle.api.tasks.SourceSetContainer 
@@ -62,25 +58,14 @@ import org.gradle.external.javadoc.JavadocOutputLevel
6258import  org.gradle.external.javadoc.MinimalJavadocOptions 
6359import  org.gradle.plugins.ide.eclipse.EclipsePlugin 
6460import  org.gradle.plugins.ide.idea.IdeaPlugin 
65- import  org.gradle.api.plugins.BasePluginExtension 
66- 
6761import  org.w3c.dom.NodeList 
68- 
62+ import   org.gradle.api.component.ConfigurationVariantDetails 
6963import  javax.inject.Inject 
7064
71- import static  org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariantPluginExtension 
7265import static  org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariant 
73- import  org.gradle.api.artifacts.ResolvableDependencies ;
74- import  org.gradle.api.artifacts.component.ComponentIdentifier ;
75- import  org.gradle.api.artifacts.result.ResolvedComponentResult ;
76- import  org.gradle.api.artifacts.result.ResolvedDependencyResult ;
77- import  org.gradle.api.file.FileCollection ;
78- import  org.gradle.api.specs.AndSpec ;
79- import  org.gradle.api.specs.Spec ;
80- import  org.gradle.api.artifacts.component.ModuleComponentIdentifier ;
81- import  java.util.stream.Collectors ;
82- 
83- class  BuildPlugin  implements  Plugin<Project >   {
66+ import static  org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariantPluginExtension 
67+ 
68+ class  BuildPlugin  implements  Plugin<Project >  {
8469
8570    public  static  final  String  SHARED_TEST_IMPLEMENTATION_CONFIGURATION_NAME  =  " sharedTestImplementation" 
8671    public  static  final  String  SHARED_ITEST_IMPLEMENTATION_CONFIGURATION_NAME  =  " sharedItestImplementation" 
@@ -568,6 +553,7 @@ class BuildPlugin implements Plugin<Project>  {
568553    private  void  configureMaven (Project  project ) {
569554        project. getPluginManager(). apply(" maven-publish" 
570555        project. getPluginManager(). apply(" com.gradleup.nmcp" 
556+         project. getPluginManager(). apply(" signing" 
571557
572558        //  Configure Maven publication
573559        project. publishing {
@@ -585,6 +571,12 @@ class BuildPlugin implements Plugin<Project>  {
585571            }
586572        }
587573
574+         Provider<String >  signingKey =  project. getProviders(). gradleProperty(" signingKey" 
575+         if  (signingKey. isPresent()) {
576+             project. signing. useInMemoryPgpKeys(signingKey. get(), project. getProviders(). gradleProperty(" signingPassword" . get());
577+             project. signing. sign(project. publishing. publications. main);
578+         }
579+ 
588580        //  Configure Maven Pom
589581        configurePom(project, project. publishing. publications. main)
590582
@@ -633,16 +625,20 @@ class BuildPlugin implements Plugin<Project>  {
633625                project. components. add(variantComponent)
634626                //  Register the variant's outgoing configurations for publication
635627                variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" apiElements" 
628+                     filterNonJarArtifacts(it)
636629                    it. mapToMavenScope(" compile" 
637630                }
638631                variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" runtimeElements" 
632+                     filterNonJarArtifacts(it)
639633                    it. mapToMavenScope(" runtime" 
640634                }
641635                variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" javadocElements" 
636+                     filterNonJarArtifacts(it)
642637                    it. mapToMavenScope(" runtime" 
643638                }
644639                variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" sourcesElements" 
645640                    it. mapToMavenScope(" runtime" 
641+                     filterNonJarArtifacts(it)
646642                }
647643
648644                //  Create a publication for this adhoc component to create pom generation and publishing tasks
@@ -657,6 +653,11 @@ class BuildPlugin implements Plugin<Project>  {
657653                        updateVariantArtifactId(project, variantPublication, variant)
658654                    }
659655                }
656+                 if  (signingKey. isPresent()) {
657+                     project. signing {
658+                         sign(project. publishing. publications. getByName(variant. getName()));
659+                     }
660+                 }
660661            }
661662        }
662663
@@ -666,6 +667,13 @@ class BuildPlugin implements Plugin<Project>  {
666667        }
667668    }
668669
670+     private  void  filterNonJarArtifacts (ConfigurationVariantDetails  details ) {
671+         def  attribute =  details. getConfigurationVariant(). getAttributes(). getAttribute(LibraryElements . LIBRARY_ELEMENTS_ATTRIBUTE )
672+         if  (attribute !=  null  &&  attribute. name !=  LibraryElements . JAR ) {
673+             details. skip()
674+         }
675+     }
676+ 
669677    private  static  void  configurePom (Project  project , MavenPublication  publication ) {
670678        //  add all items necessary for publication
671679        Provider<String >  descriptionProvider =  project. provider({ project. getDescription() })
@@ -830,7 +838,7 @@ class BuildPlugin implements Plugin<Project>  {
830838        precommitTasks. add(licenseHeaders)
831839
832840        if  (! project. path. startsWith(" :qa" 
833-             TaskProvider<DependencyLicensesTask >  dependencyLicenses =  project. tasks. register(' dependencyLicenses' DependencyLicensesTask . class) {                 
841+             TaskProvider<DependencyLicensesTask >  dependencyLicenses =  project. tasks. register(' dependencyLicenses' DependencyLicensesTask . class) {
834842                dependencies =  project. configurations. runtimeClasspath
835843                mapping from : / hadoop-.*/ to : ' hadoop' 
836844                mapping from : / hive-.*/ to : ' hive' 
0 commit comments