OpenSearch/core/pom.xml

345 lines
13 KiB
XML
Raw Normal View History

2015-06-05 07:12:03 -04:00
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-parent</artifactId>
2015-08-03 11:38:30 -04:00
<version>2.0.0-SNAPSHOT</version>
2015-06-05 07:12:03 -04:00
</parent>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<packaging>jar</packaging>
2015-06-05 07:12:05 -04:00
<name>Elasticsearch Core</name>
2015-06-05 07:12:03 -04:00
<description>Elasticsearch - Open Source, Distributed, RESTful Search Engine</description>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.carrotsearch.randomizedtesting</groupId>
<artifactId>randomizedtesting-runner</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-test-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.jimfs</groupId>
<artifactId>jimfs</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Build of QA: Smoke Test Shaded Jar fails under maven 3.3.x Build fails with maven 3.3.1 and 3.3.3. To reproduce, install one of the 3.3.x versions of maven and run `mvn clean verify` in the root directory of the project. The build will fail in the QA: Smoke Test Shaded Jar module with the following error: ``` Started J0 PID(99979@flea.local). Suite: org.elasticsearch.shaded.test.ShadedIT 2> NOTE: reproduce with: ant test -Dtestcase=ShadedIT -Dtests.method=testJodaIsNotOnTheCP -Dtests.seed=2F4D23A7462CF921 -Dtests.locale= -Dtests.timezone=Asia/Baku -Dtests.asserts=true -Dtests.file.encoding=UTF-8 FAILURE 0.06s | ShadedIT.testJodaIsNotOnTheCP <<< > Throwable #1: junit.framework.AssertionFailedError: Expected an exception but the test passed: java.lang.ClassNotFoundException > at __randomizedtesting.SeedInfo.seed([2F4D23A7462CF921:3A9404F1F69FD80]:0) > at junit.framework.Assert.fail(Assert.java:57) > at java.lang.Thread.run(Thread.java:745) 2> NOTE: reproduce with: ant test -Dtestcase=ShadedIT -Dtests.method=testGuavaIsNotOnTheCP -Dtests.seed=2F4D23A7462CF921 -Dtests.locale= -Dtests.timezone=Asia/Baku -Dtests.asserts=true -Dtests.file.encoding=UTF-8 FAILURE 0.01s | ShadedIT.testGuavaIsNotOnTheCP <<< > Throwable #1: junit.framework.AssertionFailedError: Expected an exception but the test passed: java.lang.ClassNotFoundException > at __randomizedtesting.SeedInfo.seed([2F4D23A7462CF921:C2502FD54D83433D]:0) > at junit.framework.Assert.fail(Assert.java:57) > at java.lang.Thread.run(Thread.java:745) 2> NOTE: reproduce with: ant test -Dtestcase=ShadedIT -Dtests.method=testjsr166eIsNotOnTheCP -Dtests.seed=2F4D23A7462CF921 -Dtests.locale= -Dtests.timezone=Asia/Baku -Dtests.asserts=true -Dtests.file.encoding=UTF-8 FAILURE 0.01s | ShadedIT.testjsr166eIsNotOnTheCP <<< > Throwable #1: junit.framework.AssertionFailedError: Expected an exception but the test passed: java.lang.ClassNotFoundException > at __randomizedtesting.SeedInfo.seed([2F4D23A7462CF921:35593286F4269392]:0) > at junit.framework.Assert.fail(Assert.java:57) > at java.lang.Thread.run(Thread.java:745) 2> NOTE: leaving temporary files on disk at: /Users/Shared/Jenkins/Home/workspace/elasticsearch-master/qa/smoke-test-shaded/target/J0/temp/org.elasticsearch.shaded.test.ShadedIT_2F4D23A7462CF921-001 2> NOTE: test params are: codec=CheapBastard, sim=DefaultSimilarity, locale=, timezone=Asia/Baku 2> NOTE: Mac OS X 10.10.4 x86_64/Oracle Corporation 1.8.0_25 (64-bit)/cpus=8,threads=1,free=482137936,total=514850816 2> NOTE: All tests run in this JVM: [ShadedIT] Completed [1/1] in 6.61s, 5 tests, 3 failures <<< FAILURES! Tests with failures: - org.elasticsearch.shaded.test.ShadedIT.testJodaIsNotOnTheCP - org.elasticsearch.shaded.test.ShadedIT.testGuavaIsNotOnTheCP - org.elasticsearch.shaded.test.ShadedIT.testjsr166eIsNotOnTheCP ``` Please note that build doesn't fail with maven 3.2.x and it doesn't fail if mvn command is executed inside the qa/smoke-test-shaded directory. Only when the build is started from the root directory the error above can be observed. The reason is because of the shaded version which depends on elasticsearch core. When Maven build the module only, then elasticsearch core is not added to the dependency tree. ```sh mvn dependency:tree -pl :smoke-test-shaded ``` ``` [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ smoke-test-shaded --- [INFO] org.elasticsearch.qa:smoke-test-shaded:jar:2.0.0-beta1-SNAPSHOT [INFO] +- org.elasticsearch.distribution.shaded:elasticsearch:jar:2.0.0-beta1-SNAPSHOT:compile [INFO] | +- org.apache.lucene:lucene-core:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-backward-codecs:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-analyzers-common:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-queries:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-memory:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-highlighter:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-queryparser:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-sandbox:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-suggest:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-misc:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-join:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-grouping:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-spatial:jar:5.2.1:compile [INFO] | \- com.spatial4j:spatial4j:jar:0.4.1:compile [INFO] +- org.hamcrest:hamcrest-all:jar:1.3:test [INFO] \- org.apache.lucene:lucene-test-framework:jar:5.2.1:test [INFO] +- org.apache.lucene:lucene-codecs:jar:5.2.1:test [INFO] +- com.carrotsearch.randomizedtesting:randomizedtesting-runner:jar:2.1.16:test [INFO] +- junit:junit:jar:4.11:test [INFO] \- org.apache.ant:ant:jar:1.8.2:test ``` But if shaded plugin is involved during the build, it modifies the `projectArtifactMap`: ```sh mvn dependency:tree -pl org.elasticsearch.distribution.shaded:elasticsearch,:smoke-test-shaded ``` ``` [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ smoke-test-shaded --- [INFO] org.elasticsearch.qa:smoke-test-shaded:jar:2.0.0-beta1-SNAPSHOT [INFO] +- org.elasticsearch.distribution.shaded:elasticsearch:jar:2.0.0-beta1-SNAPSHOT:compile [INFO] | \- org.elasticsearch:elasticsearch:jar:2.0.0-beta1-SNAPSHOT:compile [INFO] | +- org.apache.lucene:lucene-backward-codecs:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-analyzers-common:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-queries:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-memory:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-highlighter:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-queryparser:jar:5.2.1:compile [INFO] | | \- org.apache.lucene:lucene-sandbox:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-suggest:jar:5.2.1:compile [INFO] | | \- org.apache.lucene:lucene-misc:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-join:jar:5.2.1:compile [INFO] | | \- org.apache.lucene:lucene-grouping:jar:5.2.1:compile [INFO] | +- org.apache.lucene:lucene-spatial:jar:5.2.1:compile [INFO] | | \- com.spatial4j:spatial4j:jar:0.4.1:compile [INFO] | +- com.google.guava:guava:jar:18.0:compile [INFO] | +- com.carrotsearch:hppc:jar:0.7.1:compile [INFO] | +- joda-time:joda-time:jar:2.8:compile [INFO] | +- org.joda:joda-convert:jar:1.2:compile [INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.5.3:compile [INFO] | +- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.5.3:compile [INFO] | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.5.3:compile [INFO] | | \- org.yaml:snakeyaml:jar:1.12:compile [INFO] | +- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.5.3:compile [INFO] | +- io.netty:netty:jar:3.10.3.Final:compile [INFO] | +- com.ning:compress-lzf:jar:1.0.2:compile [INFO] | +- com.tdunning:t-digest:jar:3.0:compile [INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.6:compile [INFO] | +- org.apache.commons:commons-lang3:jar:3.3.2:compile [INFO] | +- commons-cli:commons-cli:jar:1.3.1:compile [INFO] | \- com.twitter:jsr166e:jar:1.1.0:compile [INFO] +- org.hamcrest:hamcrest-all:jar:1.3:test [INFO] \- org.apache.lucene:lucene-test-framework:jar:5.2.1:test [INFO] +- org.apache.lucene:lucene-codecs:jar:5.2.1:test [INFO] +- org.apache.lucene:lucene-core:jar:5.2.1:compile [INFO] +- com.carrotsearch.randomizedtesting:randomizedtesting-runner:jar:2.1.16:test [INFO] +- junit:junit:jar:4.11:test [INFO] \- org.apache.ant:ant:jar:1.8.2:test ``` A fix could consist of fixing something on Maven side. Probably something changed in a recent version and introduced this "issue" but it might be not really an issue. More a fix. There are two workarounds: 1) exclude manually elasticsearch core from shaded version in smoke-test-shaded module and add manually each lucene lib needed by elasticsearch 2) add a new `elasticsearch-lucene` (lucene) POM module which simply declares all needed lucene libs in subprojects (such as the smoke tester one). I choose the later. Closes #12791.
2015-08-11 09:22:58 -04:00
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-lucene</artifactId>
<version>${elasticsearch.version}</version>
<type>pom</type>
2015-06-05 07:12:03 -04:00
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-expressions</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<optional>true</optional>
</dependency>
<!-- needed for templating -->
<dependency>
<groupId>com.github.spullara.mustache.java</groupId>
<artifactId>compiler</artifactId>
<optional>true</optional>
</dependency>
<!-- Lucene spatial -->
<!-- START: dependencies that might be shaded -->
2015-06-05 07:12:03 -04:00
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>com.carrotsearch</groupId>
<artifactId>hppc</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>org.joda</groupId>
<artifactId>joda-convert</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-smile</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
</dependency>
<dependency>
<groupId>com.ning</groupId>
<artifactId>compress-lzf</artifactId>
</dependency>
<dependency>
<groupId>com.tdunning</groupId>
<artifactId>t-digest</artifactId>
</dependency>
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
</dependency>
2015-06-05 07:12:03 -04:00
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>
<!-- END: dependencies that might be shaded -->
2015-06-05 07:12:03 -04:00
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<classifier>indy</classifier>
<optional>true</optional>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>apache-log4j-extras</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<optional>true</optional>
</dependency>
<!-- remove this for java 8 -->
<dependency>
<groupId>com.twitter</groupId>
<artifactId>jsr166e</artifactId>
<version>1.1.0</version>
</dependency>
2015-06-05 07:12:03 -04:00
</dependencies>
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<includes>
<include>**/*.json</include>
<include>**/*.yml</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<includes>
<include>**/*.json</include>
<include>**/*.yml</include>
<include>**/*.txt</include>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<includes>
<include>**/*.gz</include>
</includes>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</testResource>
<testResource>
<directory>${elasticsearch.tools.directory}/rest-api-spec</directory>
2015-06-05 07:12:03 -04:00
<targetPath>rest-api-spec</targetPath>
<includes>
<include>api/*.json</include>
<include>test/**/*.yaml</include>
</includes>
</testResource>
<!-- shared test resources like log4j.properties -->
<testResource>
<directory>${elasticsearch.tools.directory}/shared-test-resources</directory>
<filtering>false</filtering>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-test-sources</id>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<includes>
<include>org/elasticsearch/test/**/*</include>
<include>org/elasticsearch/bootstrap/BootstrapForTesting.class</include>
<include>org/elasticsearch/common/cli/CliToolTestCase.class</include>
<include>org/elasticsearch/common/cli/CliToolTestCase$*.class</include>
</includes>
<excludes>
<!-- unit tests for yaml suite parser & rest spec parser need to be excluded -->
<exclude>org/elasticsearch/test/rest/test/**/*</exclude>
<!-- unit tests for test framework classes-->
<exclude>org/elasticsearch/test/test/**/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<includes>
<include>rest-api-spec/**/*</include>
<include>org/elasticsearch/test/**/*</include>
<include>org/elasticsearch/bootstrap/BootstrapForTesting.class</include>
<include>org/elasticsearch/common/cli/CliToolTestCase.class</include>
<include>org/elasticsearch/common/cli/CliToolTestCase$*.class</include>
</includes>
<excludes>
<!-- unit tests for yaml suite parser & rest spec parser need to be excluded -->
<exclude>org/elasticsearch/test/rest/test/**/*</exclude>
<!-- unit tests for test framework classes-->
<exclude>org/elasticsearch/test/test/**/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<!-- Don't run the license checker in core -->
<id>check-license</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
2015-06-05 07:12:03 -04:00
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>org/apache/lucene/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<excludes>
<!-- Guice -->
<exclude>src/main/java/org/elasticsearch/common/inject/**</exclude>
<exclude>src/main/java/org/elasticsearch/common/geo/GeoHashUtils.java</exclude>
<exclude>src/main/java/org/apache/lucene/**/X*.java</exclude>
<!-- t-digest -->
<exclude>src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestState.java</exclude>
<!-- netty pipelining -->
<exclude>src/main/java/org/elasticsearch/http/netty/pipelining/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<!-- license profile, to generate third party license file -->
<profile>
<id>license</id>
<activation>
<property>
<name>license.generation</name>
<value>true</value>
</property>
</activation>
<!-- not including license-maven-plugin is sufficent to expose default license -->
</profile>
</profiles>
</project>