Răsfoiți Sursa

Merge pull request #14668 from rjernst/transitive_goes_poof

Remove transitive dependencies
Ryan Ernst 10 ani în urmă
părinte
comite
83f3a981b7
26 a modificat fișierele cu 144 adăugiri și 56 ștergeri
  1. 1 1
      build.gradle
  2. 19 1
      buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy
  3. 3 0
      buildSrc/version.properties
  4. 12 8
      core/build.gradle
  5. 1 0
      plugins/analysis-icu/build.gradle
  6. 1 0
      plugins/analysis-phonetic/build.gradle
  7. 25 6
      plugins/discovery-azure/build.gradle
  8. 1 0
      plugins/discovery-azure/licenses/commons-codec-1.10.jar.sha1
  9. 0 1
      plugins/discovery-azure/licenses/commons-codec-1.6.jar.sha1
  10. 11 1
      plugins/discovery-ec2/build.gradle
  11. 1 0
      plugins/discovery-ec2/licenses/commons-codec-1.10.jar.sha1
  12. 0 1
      plugins/discovery-ec2/licenses/commons-codec-1.6.jar.sha1
  13. 13 3
      plugins/discovery-gce/build.gradle
  14. 1 0
      plugins/discovery-gce/licenses/commons-codec-1.10.jar.sha1
  15. 0 1
      plugins/discovery-gce/licenses/commons-codec-1.6.jar.sha1
  16. 3 0
      plugins/lang-expression/build.gradle
  17. 27 13
      plugins/mapper-attachments/build.gradle
  18. 1 0
      plugins/mapper-attachments/licenses/commons-codec-1.10.jar.sha1
  19. 0 1
      plugins/mapper-attachments/licenses/commons-codec-1.9.jar.sha1
  20. 0 1
      plugins/mapper-attachments/licenses/commons-logging-1.1.1.jar.sha1
  21. 1 0
      plugins/mapper-attachments/licenses/commons-logging-1.1.3.jar.sha1
  22. 2 3
      plugins/repository-azure/build.gradle
  23. 12 1
      plugins/repository-s3/build.gradle
  24. 1 0
      plugins/repository-s3/licenses/commons-codec-1.10.jar.sha1
  25. 0 1
      plugins/repository-s3/licenses/commons-codec-1.6.jar.sha1
  26. 8 13
      test-framework/build.gradle

+ 1 - 1
build.gradle

@@ -114,7 +114,7 @@ subprojects {
   configurations {
     all {
       resolutionStrategy {
-        //failOnVersionConflict()
+        failOnVersionConflict()
 
         dependencySubstitution {
           substitute module("org.elasticsearch:rest-api-spec:${version}") with project("${projectsPrefix}:rest-api-spec")

+ 19 - 1
buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy

@@ -19,6 +19,7 @@
 package org.elasticsearch.gradle
 
 import org.elasticsearch.gradle.precommit.PrecommitTasks
+import org.gradle.api.artifacts.ProjectDependency
 import org.gradle.api.GradleException
 import org.gradle.api.JavaVersion
 import org.gradle.api.Plugin
@@ -28,7 +29,6 @@ import org.gradle.api.artifacts.dsl.RepositoryHandler
 import org.gradle.api.tasks.bundling.Jar
 import org.gradle.api.tasks.compile.JavaCompile
 import org.gradle.util.GradleVersion
-import org.gradle.util.VersionNumber
 
 /**
  * Encapsulates build configuration for elasticsearch projects.
@@ -48,6 +48,7 @@ class BuildPlugin implements Plugin<Project> {
         project.pluginManager.apply('nebula.info-scm')
         project.pluginManager.apply('nebula.info-jar')
 
+        configureConfigurations(project)
         project.ext.versions = VersionProperties.versions
         configureCompile(project)
         configureJarManifest(project)
@@ -80,6 +81,23 @@ class BuildPlugin implements Plugin<Project> {
         }
     }
 
+    /** Makes dependencies non-transitive by default */
+    static void configureConfigurations(Project project) {
+
+        // force all dependencies added directly to compile/testCompile to be non-transitive, except for ES itself
+        project.configurations.compile.dependencies.all { dep ->
+            if (!(dep instanceof ProjectDependency) && dep.getGroup() != 'org.elasticsearch') {
+                dep.transitive = false
+            }
+        }
+        project.configurations.testCompile.dependencies.all { dep ->
+            if (!(dep instanceof ProjectDependency) && dep.getGroup() != 'org.elasticsearch') {
+                dep.transitive = false
+            }
+        }
+    }
+
+    /** Adds repositores used by ES dependencies */
     static void configureRepositories(Project project) {
         RepositoryHandler repos = project.repositories
         repos.mavenCentral()

+ 3 - 0
buildSrc/version.properties

@@ -15,3 +15,6 @@ jna               = 4.1.0
 randomizedrunner  = 2.2.0
 junit             = 4.11
 httpclient        = 4.3.6
+httpcore          = 4.3.3
+commonslogging    = 1.1.3
+commonscodec      = 1.10

+ 12 - 8
core/build.gradle

@@ -31,15 +31,19 @@ dependencies {
 
   // lucene
   compile "org.apache.lucene:lucene-core:${versions.lucene}"
-  compile "org.apache.lucene:lucene-backward-codecs:${versions.lucene}"
   compile "org.apache.lucene:lucene-analyzers-common:${versions.lucene}"
-  compile "org.apache.lucene:lucene-queries:${versions.lucene}"
-  compile "org.apache.lucene:lucene-memory:${versions.lucene}"
+  compile "org.apache.lucene:lucene-backward-codecs:${versions.lucene}"
+  compile "org.apache.lucene:lucene-grouping:${versions.lucene}"
   compile "org.apache.lucene:lucene-highlighter:${versions.lucene}"
-  compile "org.apache.lucene:lucene-queryparser:${versions.lucene}"
-  compile "org.apache.lucene:lucene-suggest:${versions.lucene}"
   compile "org.apache.lucene:lucene-join:${versions.lucene}"
+  compile "org.apache.lucene:lucene-memory:${versions.lucene}"
+  compile "org.apache.lucene:lucene-misc:${versions.lucene}"
+  compile "org.apache.lucene:lucene-queries:${versions.lucene}"
+  compile "org.apache.lucene:lucene-queryparser:${versions.lucene}"
+  compile "org.apache.lucene:lucene-sandbox:${versions.lucene}"
   compile "org.apache.lucene:lucene-spatial:${versions.lucene}"
+  compile "org.apache.lucene:lucene-spatial3d:${versions.lucene}"
+  compile "org.apache.lucene:lucene-suggest:${versions.lucene}"
 
   compile 'org.elasticsearch:securesm:1.0'
 
@@ -56,10 +60,10 @@ dependencies {
   // json and yaml
   compile "com.fasterxml.jackson.core:jackson-core:${versions.jackson}"
   compile "com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${versions.jackson}"
-  compile(group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: versions.jackson) {
-    exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
-  }
+  compile "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${versions.jackson}"
   compile "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${versions.jackson}"
+  compile "org.yaml:snakeyaml:1.15" // used by jackson yaml
+
   // network stack
   compile 'io.netty:netty:3.10.5.Final'
   // compression of transport protocol

+ 1 - 0
plugins/analysis-icu/build.gradle

@@ -24,6 +24,7 @@ esplugin {
 
 dependencies {
   compile "org.apache.lucene:lucene-analyzers-icu:${versions.lucene}"
+  compile 'com.ibm.icu:icu4j:54.1'
 }
 
 dependencyLicenses {

+ 1 - 0
plugins/analysis-phonetic/build.gradle

@@ -24,6 +24,7 @@ esplugin {
 
 dependencies {
   compile "org.apache.lucene:lucene-analyzers-phonetic:${versions.lucene}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
 }
 
 dependencyLicenses {

+ 25 - 6
plugins/discovery-azure/build.gradle

@@ -22,14 +22,33 @@ esplugin {
   classname 'org.elasticsearch.plugin.discovery.azure.AzureDiscoveryPlugin'
 }
 
+versions << [
+  'azure': '0.7.0',
+  'jersey': '1.13'
+]
+
 dependencies {
-  compile('com.microsoft.azure:azure-management-compute:0.7.0') {
-    exclude group: 'stax', module: 'stax-api'
-  }
-  compile('com.microsoft.azure:azure-management:0.7.0') {
-    exclude group: 'stax', module: 'stax-api'
-  }
+  compile "com.microsoft.azure:azure-management-compute:${versions.azure}"
+  compile "com.microsoft.azure:azure-management:${versions.azure}"
+  compile "com.microsoft.azure:azure-core:${versions.azure}"
   compile "org.apache.httpcomponents:httpclient:${versions.httpclient}"
+  compile "org.apache.httpcomponents:httpcore:${versions.httpcore}"
+  compile "commons-logging:commons-logging:${versions.commonslogging}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
+  compile 'javax.mail:mail:1.4.5'
+  compile 'javax.activation:activation:1.1'
+  compile 'javax.inject:javax.inject:1'
+  compile "com.sun.jersey:jersey-client:${versions.jersey}"
+  compile "com.sun.jersey:jersey-core:${versions.jersey}"
+  compile "com.sun.jersey:jersey-json:${versions.jersey}"
+  compile 'org.codehaus.jettison:jettison:1.1' 
+  compile 'com.sun.xml.bind:jaxb-impl:2.2.3-1'
+  compile 'javax.xml.bind:jaxb-api:2.2.2'
+  compile 'javax.xml.stream:stax-api:1.0-2'
+  compile 'org.codehaus.jackson:jackson-core-asl:1.9.2'
+  compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.2'
+  compile 'org.codehaus.jackson:jackson-jaxrs:1.9.2'
+  compile 'org.codehaus.jackson:jackson-xc:1.9.2'  
 }
 
 dependencyLicenses {

+ 1 - 0
plugins/discovery-azure/licenses/commons-codec-1.10.jar.sha1

@@ -0,0 +1 @@
+4b95f4897fa13f2cd904aee711aeafc0c5295cd8

+ 0 - 1
plugins/discovery-azure/licenses/commons-codec-1.6.jar.sha1

@@ -1 +0,0 @@
-b7f0fc8f61ecadeb3695f0b9464755eee44374d4

+ 11 - 1
plugins/discovery-ec2/build.gradle

@@ -22,9 +22,19 @@ esplugin {
   classname 'org.elasticsearch.plugin.discovery.ec2.Ec2DiscoveryPlugin'
 }
 
+versions << [
+  'aws': '1.10.19'
+]
+
 dependencies {
-  compile 'com.amazonaws:aws-java-sdk-ec2:1.10.19'
+  compile "com.amazonaws:aws-java-sdk-ec2:${versions.aws}"
+  compile "com.amazonaws:aws-java-sdk-core:${versions.aws}"
   compile "org.apache.httpcomponents:httpclient:${versions.httpclient}"
+  compile "org.apache.httpcomponents:httpcore:${versions.httpcore}"
+  compile "commons-logging:commons-logging:${versions.commonslogging}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
+  compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3'
+  compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.0'
 }
 
 dependencyLicenses {

+ 1 - 0
plugins/discovery-ec2/licenses/commons-codec-1.10.jar.sha1

@@ -0,0 +1 @@
+4b95f4897fa13f2cd904aee711aeafc0c5295cd8

+ 0 - 1
plugins/discovery-ec2/licenses/commons-codec-1.6.jar.sha1

@@ -1 +0,0 @@
-b7f0fc8f61ecadeb3695f0b9464755eee44374d4

+ 13 - 3
plugins/discovery-gce/build.gradle

@@ -4,11 +4,21 @@ esplugin {
   classname 'org.elasticsearch.plugin.discovery.gce.GceDiscoveryPlugin'
 }
 
+versions << [
+  'google': '1.20.0'
+]
+
 dependencies {
-  compile('com.google.apis:google-api-services-compute:v1-rev71-1.20.0') {
-    exclude group: 'com.google.guava', module: 'guava-jdk5'
-  }
+  compile "com.google.apis:google-api-services-compute:v1-rev71-${versions.google}"
+  compile "com.google.api-client:google-api-client:${versions.google}"
+  compile "com.google.oauth-client:google-oauth-client:${versions.google}"
+  compile "com.google.http-client:google-http-client:${versions.google}"
+  compile "com.google.http-client:google-http-client-jackson2:${versions.google}"
+  compile 'com.google.code.findbugs:jsr305:1.3.9'
   compile "org.apache.httpcomponents:httpclient:${versions.httpclient}"
+  compile "org.apache.httpcomponents:httpcore:${versions.httpcore}"
+  compile "commons-logging:commons-logging:${versions.commonslogging}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
 }
 
 dependencyLicenses {

+ 1 - 0
plugins/discovery-gce/licenses/commons-codec-1.10.jar.sha1

@@ -0,0 +1 @@
+4b95f4897fa13f2cd904aee711aeafc0c5295cd8

+ 0 - 1
plugins/discovery-gce/licenses/commons-codec-1.6.jar.sha1

@@ -1 +0,0 @@
-b7f0fc8f61ecadeb3695f0b9464755eee44374d4

+ 3 - 0
plugins/lang-expression/build.gradle

@@ -24,6 +24,9 @@ esplugin {
 
 dependencies {
   compile "org.apache.lucene:lucene-expressions:${versions.lucene}"
+  compile 'org.antlr:antlr4-runtime:4.5.1-1'
+  compile 'org.ow2.asm:asm:5.0.4'
+  compile 'org.ow2.asm:asm-commons:5.0.4'
 }
 
 dependencyLicenses {

+ 27 - 13
plugins/mapper-attachments/build.gradle

@@ -18,34 +18,48 @@
  */
 
 esplugin {
-  name 'mapper-attachments'
   description 'The mapper attachments plugin adds the attachment type to Elasticsearch using Apache Tika.'
   classname 'org.elasticsearch.mapper.attachments.MapperAttachmentsPlugin'
 }
 
+versions << [
+  'tika': '1.11',
+  'pdfbox': '1.8.10',
+  'bouncycastle': '1.52',
+  'poi': '3.13'
+]
+
 dependencies {
   // mandatory for tika
-  compile('org.apache.tika:tika-core:1.11')
-  compile('org.apache.tika:tika-parsers:1.11') { 
-    transitive = false
-  }
-  compile('commons-io:commons-io:2.4')
+  compile "org.apache.tika:tika-core:${versions.tika}"
+  compile "org.apache.tika:tika-parsers:${versions.tika}"
+  compile 'commons-io:commons-io:2.4'
   
   // character set detection
-  compile('com.googlecode.juniversalchardet:juniversalchardet:1.0.3')
+  compile 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
 
   // external parser libraries
   // HTML
-  compile('org.ccil.cowan.tagsoup:tagsoup:1.2.1')
+  compile 'org.ccil.cowan.tagsoup:tagsoup:1.2.1'
   // Adobe PDF
-  compile('org.apache.pdfbox:pdfbox:1.8.10')
-  compile('org.bouncycastle:bcmail-jdk15on:1.52')
+  compile "org.apache.pdfbox:pdfbox:${versions.pdfbox}"
+  compile "org.apache.pdfbox:fontbox:${versions.pdfbox}"
+  compile "org.apache.pdfbox:jempbox:${versions.pdfbox}"
+  compile "commons-logging:commons-logging:${versions.commonslogging}"
+  compile "org.bouncycastle:bcmail-jdk15on:${versions.bouncycastle}"
+  compile "org.bouncycastle:bcprov-jdk15on:${versions.bouncycastle}"
+  compile "org.bouncycastle:bcpkix-jdk15on:${versions.bouncycastle}"
   // OpenOffice
-  compile('org.apache.poi:poi-ooxml:3.13')
+  compile "org.apache.poi:poi-ooxml:${versions.poi}"
+  compile "org.apache.poi:poi:${versions.poi}"
+  compile "org.apache.poi:poi-ooxml-schemas:${versions.poi}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
+  compile 'org.apache.xmlbeans:xmlbeans:2.6.0'
+  compile 'stax:stax-api:1.0.1'
   // MS Office
-  compile('org.apache.poi:poi-scratchpad:3.13')
+  compile "org.apache.poi:poi-scratchpad:${versions.poi}"
   // Apple iWork
-  compile('org.apache.commons:commons-compress:1.10')
+  compile 'org.apache.commons:commons-compress:1.10'
 }
 
 compileJava.options.compilerArgs << '-Xlint:-cast,-deprecation,-rawtypes'

+ 1 - 0
plugins/mapper-attachments/licenses/commons-codec-1.10.jar.sha1

@@ -0,0 +1 @@
+4b95f4897fa13f2cd904aee711aeafc0c5295cd8

+ 0 - 1
plugins/mapper-attachments/licenses/commons-codec-1.9.jar.sha1

@@ -1 +0,0 @@
-9ce04e34240f674bc72680f8b843b1457383161a

+ 0 - 1
plugins/mapper-attachments/licenses/commons-logging-1.1.1.jar.sha1

@@ -1 +0,0 @@
-5043bfebc3db072ed80fbd362e7caf00e885d8ae

+ 1 - 0
plugins/mapper-attachments/licenses/commons-logging-1.1.3.jar.sha1

@@ -0,0 +1 @@
+f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f

+ 2 - 3
plugins/repository-azure/build.gradle

@@ -23,9 +23,8 @@ esplugin {
 }
 
 dependencies {
-  compile('com.microsoft.azure:azure-storage:2.0.0') {
-    exclude group: 'org.slf4j', module: 'slf4j-api'
-  }
+  compile 'com.microsoft.azure:azure-storage:2.0.0'
+  compile 'org.apache.commons:commons-lang3:3.3.2'
 }
 
 dependencyLicenses {

+ 12 - 1
plugins/repository-s3/build.gradle

@@ -22,9 +22,20 @@ esplugin {
   classname 'org.elasticsearch.plugin.repository.s3.S3RepositoryPlugin'
 }
 
+versions << [
+  'aws': '1.10.19'
+]
+
 dependencies {
-  compile 'com.amazonaws:aws-java-sdk-s3:1.10.19'
+  compile "com.amazonaws:aws-java-sdk-s3:${versions.aws}"
+  compile "com.amazonaws:aws-java-sdk-kms:${versions.aws}"
+  compile "com.amazonaws:aws-java-sdk-core:${versions.aws}"
   compile "org.apache.httpcomponents:httpclient:${versions.httpclient}"
+  compile "org.apache.httpcomponents:httpcore:${versions.httpcore}"
+  compile "commons-logging:commons-logging:${versions.commonslogging}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
+  compile "com.fasterxml.jackson.core:jackson-databind:2.5.3"
+  compile "com.fasterxml.jackson.core:jackson-annotations:2.5.0"
 }
 
 dependencyLicenses {

+ 1 - 0
plugins/repository-s3/licenses/commons-codec-1.10.jar.sha1

@@ -0,0 +1 @@
+4b95f4897fa13f2cd904aee711aeafc0c5295cd8

+ 0 - 1
plugins/repository-s3/licenses/commons-codec-1.6.jar.sha1

@@ -1 +0,0 @@
-b7f0fc8f61ecadeb3695f0b9464755eee44374d4

+ 8 - 13
test-framework/build.gradle

@@ -24,19 +24,14 @@ apply plugin: 'com.bmuschko.nexus'
 dependencies {
   compile "org.elasticsearch:elasticsearch:${version}"
   compile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
-  compile("junit:junit:${versions.junit}") {
-    exclude group: 'org.hamcrest', module: 'hamcrest-core'
-  }
-  compile("org.apache.lucene:lucene-test-framework:${versions.lucene}") {
-    exclude group: 'com.carrotsearch.randomizedtesting', module: 'junit4-ant'
-  }
-  compile('org.hamcrest:hamcrest-all:1.3') {
-    exclude group: 'org.hamcrest', module: 'hamcrest-core'
-  }
-  compile("org.apache.httpcomponents:httpclient:${versions.httpclient}") {
-    exclude group: 'commons-codec', module: 'commons-codec'
-  }
-  compile "commons-codec:commons-codec:1.9"
+  compile "junit:junit:${versions.junit}"
+  compile 'org.hamcrest:hamcrest-all:1.3'
+  compile "org.apache.lucene:lucene-test-framework:${versions.lucene}"
+  compile "org.apache.lucene:lucene-codecs:${versions.lucene}"
+  compile "org.apache.httpcomponents:httpclient:${versions.httpclient}"
+  compile "org.apache.httpcomponents:httpcore:${versions.httpcore}"
+  compile "commons-logging:commons-logging:${versions.commonslogging}"
+  compile "commons-codec:commons-codec:${versions.commonscodec}"
 }
 
 compileJava.options.compilerArgs << '-Xlint:-cast,-deprecation,-fallthrough,-overrides,-rawtypes,-serial,-try,-unchecked'