19
19
20
20
package org.elasticsearch.hadoop.gradle
21
21
22
+ import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask
22
23
import org.elasticsearch.hadoop.gradle.buildtools.DependenciesInfoPlugin
23
24
import org.elasticsearch.hadoop.gradle.buildtools.DependencyLicensesTask
24
25
import org.elasticsearch.hadoop.gradle.buildtools.LicenseHeadersTask
25
- import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask
26
26
import org.elasticsearch.hadoop.gradle.buildtools.UpdateShasTask
27
27
import org.elasticsearch.hadoop.gradle.buildtools.info.BuildParams
28
28
import org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin
29
29
import org.gradle.api.Plugin
30
30
import org.gradle.api.Project
31
31
import org.gradle.api.Task
32
32
import 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
+
39
35
import org.gradle.api.attributes.LibraryElements
40
36
import org.gradle.api.attributes.Usage
41
37
import org.gradle.api.component.SoftwareComponentFactory
42
38
import org.gradle.api.file.CopySpec
43
39
import org.gradle.api.file.FileCollection
44
40
import org.gradle.api.java.archives.Manifest
41
+ import org.gradle.api.plugins.BasePluginExtension
45
42
import org.gradle.api.plugins.JavaLibraryPlugin
46
43
import org.gradle.api.plugins.JavaPlugin
47
44
import org.gradle.api.plugins.scala.ScalaPlugin
48
45
import org.gradle.api.provider.Provider
49
46
import org.gradle.api.publish.maven.MavenPom
50
47
import org.gradle.api.publish.maven.MavenPublication
51
48
import org.gradle.api.publish.maven.tasks.GenerateMavenPom
52
- import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
53
49
import org.gradle.api.tasks.Copy
54
50
import org.gradle.api.tasks.SourceSet
55
51
import org.gradle.api.tasks.SourceSetContainer
@@ -62,25 +58,14 @@ import org.gradle.external.javadoc.JavadocOutputLevel
62
58
import org.gradle.external.javadoc.MinimalJavadocOptions
63
59
import org.gradle.plugins.ide.eclipse.EclipsePlugin
64
60
import org.gradle.plugins.ide.idea.IdeaPlugin
65
- import org.gradle.api.plugins.BasePluginExtension
66
-
67
61
import org.w3c.dom.NodeList
68
-
62
+ import org.gradle.api.component.ConfigurationVariantDetails
69
63
import javax.inject.Inject
70
64
71
- import static org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariantPluginExtension
72
65
import 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 > {
84
69
85
70
public static final String SHARED_TEST_IMPLEMENTATION_CONFIGURATION_NAME = " sharedTestImplementation"
86
71
public static final String SHARED_ITEST_IMPLEMENTATION_CONFIGURATION_NAME = " sharedItestImplementation"
@@ -568,6 +553,7 @@ class BuildPlugin implements Plugin<Project> {
568
553
private void configureMaven (Project project ) {
569
554
project. getPluginManager(). apply(" maven-publish" )
570
555
project. getPluginManager(). apply(" com.gradleup.nmcp" )
556
+ project. getPluginManager(). apply(" signing" )
571
557
572
558
// Configure Maven publication
573
559
project. publishing {
@@ -585,6 +571,12 @@ class BuildPlugin implements Plugin<Project> {
585
571
}
586
572
}
587
573
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
+
588
580
// Configure Maven Pom
589
581
configurePom(project, project. publishing. publications. main)
590
582
@@ -633,16 +625,20 @@ class BuildPlugin implements Plugin<Project> {
633
625
project. components. add(variantComponent)
634
626
// Register the variant's outgoing configurations for publication
635
627
variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" apiElements" ))) {
628
+ filterNonJarArtifacts(it)
636
629
it. mapToMavenScope(" compile" )
637
630
}
638
631
variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" runtimeElements" ))) {
632
+ filterNonJarArtifacts(it)
639
633
it. mapToMavenScope(" runtime" )
640
634
}
641
635
variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" javadocElements" ))) {
636
+ filterNonJarArtifacts(it)
642
637
it. mapToMavenScope(" runtime" )
643
638
}
644
639
variantComponent. addVariantsFromConfiguration(project. configurations. getByName(variant. configuration(" sourcesElements" ))) {
645
640
it. mapToMavenScope(" runtime" )
641
+ filterNonJarArtifacts(it)
646
642
}
647
643
648
644
// Create a publication for this adhoc component to create pom generation and publishing tasks
@@ -657,6 +653,11 @@ class BuildPlugin implements Plugin<Project> {
657
653
updateVariantArtifactId(project, variantPublication, variant)
658
654
}
659
655
}
656
+ if (signingKey. isPresent()) {
657
+ project. signing {
658
+ sign(project. publishing. publications. getByName(variant. getName()));
659
+ }
660
+ }
660
661
}
661
662
}
662
663
@@ -666,6 +667,13 @@ class BuildPlugin implements Plugin<Project> {
666
667
}
667
668
}
668
669
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
+
669
677
private static void configurePom (Project project , MavenPublication publication ) {
670
678
// add all items necessary for publication
671
679
Provider<String > descriptionProvider = project. provider({ project. getDescription() })
@@ -830,7 +838,7 @@ class BuildPlugin implements Plugin<Project> {
830
838
precommitTasks. add(licenseHeaders)
831
839
832
840
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) {
834
842
dependencies = project. configurations. runtimeClasspath
835
843
mapping from : / hadoop-.*/ , to : ' hadoop'
836
844
mapping from : / hive-.*/ , to : ' hive'
0 commit comments