Skip to content

Commit e4f8fd5

Browse files
authored
Move dependency report logic to the dist project (#1489)
1 parent ffa818a commit e4f8fd5

File tree

3 files changed

+27
-13
lines changed

3 files changed

+27
-13
lines changed

build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ apply plugin: 'es.hadoop.build.root'
66

77
defaultTasks 'build'
88

9+
allprojects {
10+
group = "org.elasticsearch"
11+
}
12+
913
// Simple utility task to help with downloading artifacts and jars
1014
if (project.hasProperty("find-artifact")) {
1115
String artifact = project.getProperty("find-artifact")
@@ -37,8 +41,9 @@ if (project.hasProperty("find-artifact")) {
3741
}
3842
}
3943

40-
// Add a task in the root project that collects all the dependencyReport data for each project
44+
// Add a task in the project that collects all the dependencyReport data for each project
4145
// Concatenates the dependencies CSV files into a single file
46+
// usage: ./gradlew :dist:generateDependenciesReport -Dcsv=/tmp/deps.csv
4247
task generateDependenciesReport(type: ConcatFilesTask) {
4348
files = fileTree(dir: project.rootDir, include: '**/dependencies.csv' )
4449
headerLine = "name,version,url,license"

buildSrc/src/main/groovy/org/elasticsearch/hadoop/gradle/BuildPlugin.groovy

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.elasticsearch.hadoop.gradle
22

3-
import org.elasticsearch.gradle.DependenciesInfoTask
3+
import org.elasticsearch.gradle.DependenciesInfoPlugin
44
import org.elasticsearch.gradle.info.BuildParams
55
import org.elasticsearch.gradle.precommit.DependencyLicensesTask
66
import org.elasticsearch.gradle.precommit.LicenseHeadersTask
@@ -12,7 +12,6 @@ import org.gradle.api.Task
1212
import org.gradle.api.artifacts.Configuration
1313
import org.gradle.api.artifacts.Dependency
1414
import org.gradle.api.artifacts.DependencyResolveDetails
15-
import org.gradle.api.artifacts.DependencySubstitutions
1615
import org.gradle.api.artifacts.ModuleDependency
1716
import org.gradle.api.artifacts.ProjectDependency
1817
import org.gradle.api.artifacts.ResolutionStrategy
@@ -24,7 +23,6 @@ import org.gradle.api.file.CopySpec
2423
import org.gradle.api.file.FileCollection
2524
import org.gradle.api.java.archives.Manifest
2625
import org.gradle.api.plugins.JavaLibraryPlugin
27-
import org.gradle.api.plugins.JavaPlugin
2826
import org.gradle.api.plugins.MavenPlugin
2927
import org.gradle.api.plugins.MavenPluginConvention
3028
import org.gradle.api.plugins.scala.ScalaPlugin
@@ -559,14 +557,7 @@ class BuildPlugin implements Plugin<Project> {
559557

560558
private static void configureDependenciesInfo(Project project) {
561559
if (!project.path.startsWith(":qa")) {
562-
project.tasks.register("dependenciesInfo", DependenciesInfoTask) { DependenciesInfoTask task ->
563-
task.runtimeConfiguration = project.configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)
564-
task.compileOnlyConfiguration = project.configurations.getByName(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME)
565-
// Create a property called mappings that points to the same mappings in the dependency licenses task.
566-
task.getConventionMapping().map('mappings') {
567-
(project.tasks.getByName('dependencyLicenses') as DependencyLicensesTask).mappings
568-
}
569-
}
560+
project.getPluginManager().apply(DependenciesInfoPlugin.class)
570561
}
571562
}
572563
}

dist/build.gradle

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.elasticsearch.gradle.ConcatFilesTask
2+
import org.elasticsearch.gradle.DependenciesInfoTask
13

24
apply plugin: 'es.hadoop.build'
35

@@ -10,6 +12,13 @@ configurations {
1012
canBeConsumed = false
1113
transitive = false
1214
}
15+
javadocDependencies {
16+
canBeResolved = true
17+
canBeConsumed = false
18+
}
19+
compileClasspath {
20+
extendsFrom javadocDependencies
21+
}
1322
dist {
1423
canBeResolved = true
1524
canBeConsumed = false
@@ -26,7 +35,7 @@ distProjects.each { distProject ->
2635
// This is only going to pull in each project's regular jar to create the project-wide uberjar.
2736
embedded(project(distProject))
2837
// To squash Javadoc warnings.
29-
compileOnly(project(distProject))
38+
javadocDependencies(project(distProject))
3039
// This will pull all java sources (including generated) for the project-wide javadoc.
3140
javadocSources(project(distProject))
3241
// This will pull all non-generated sources for the project-wide source jar.
@@ -128,3 +137,12 @@ task('distZip', type: Zip) {
128137
distribution {
129138
dependsOn(distZip)
130139
}
140+
141+
// Add a task in the root project that collects all the dependencyReport data for each project
142+
// Concatenates the dependencies CSV files into a single file
143+
task generateDependenciesReport(type: ConcatFilesTask) {
144+
dependsOn rootProject.allprojects.collect { it.tasks.withType(DependenciesInfoTask) }
145+
files = fileTree(dir: project.rootDir, include: '**/dependencies.csv' )
146+
headerLine = "name,version,url,license"
147+
target = new File(System.getProperty('csv')?: "${project.buildDir}/reports/dependencies/es-hadoop-dependencies.csv")
148+
}

0 commit comments

Comments
 (0)