thinkaurelius / titan

Distributed Graph Database
http://titandb.io
Apache License 2.0
5.25k stars 1.01k forks source link

some suggestion of building source #1017

Closed gointosunset closed 9 years ago

gointosunset commented 9 years ago

Hi, i don't know how to post my suggestion, so i post as a issus. when i begin to build titan source, i use the command follow:

$ mvn clean install -DskipTests -Dmaven.test.skip=true -e -X

1:i get error about asciidoctor-maven-plugin need support of jruby-complete 1.7.0 + , so i modify the follow configuration

plugin> groupId>org.asciidoctor/groupId> artifactId>asciidoctor-maven-plugin/artifactId> inherited>false/inherited> executions> ____execution> ____id>asciidoc-to-docbook/id> ____phase>generate-resources/phase> ____goals> ____goal>process-asciidoc/goal> ____/goals> ____configuration> ____sourceDirectory>${asciidoc.output.dir}/sourceDirectory> ____sourceDocumentName>index.txt/sourceDocumentName> ____outputDirectory>${docbook.output.dir}/outputDirectory> ____backend>docbook5/backend> ____doctype>book/doctype> ____attributes> ____encoding>UTF-8/encoding> ____iconsdir>images/icons/iconsdir> ____imagesdir>images/imagesdir> ____toc>true/toc> ____/attributes> ____/configuration> ____/execution> /executions> dependencies> ____dependency> ____groupId>org.jruby/groupId> ____artifactId>jruby-complete/artifactId> ____version>1.7.0/version> ____/dependency> ____/dependencies> /plugin>

now building source success. then i thought my hadoop version is cdh-5.2.0 that compile with hadoop-2.5.0. so i try to build titan with hadoop-2.5.0. i find the maven controller hadoop version and using maven-enforcer-plugin to ensure dependencies version. so i use the follow command to compile source

$mvn clean install -DskipTests -Dmaven.test.skip=true -e -X -Dhadoop2.version=2.5.0

2:failing, because of dependencies conflict, the error cause by three dependecies, i solve by exclude them of default hadoop version invocaking, follow (need modify all pom.xml contain this three issus dependencies):

____dependency> ____groupId>org.apache.hbase/groupId> ____artifactId>hbase-client/artifactId> ____version>${hbase.version}/version> ____optional>true/optional> ____exclusions> ____exclusion> ____artifactId>avro/artifactId> ____groupId>org.apache.avro/groupId> ____/exclusion> ____exclusion> ____artifactId>jruby-complete/artifactId> ____groupId>org.jruby/groupId> ____/exclusion> ____exclusion> ____artifactId>asm/artifactId> ____groupId>asm/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-annotations/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-common/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-mapreduce-client-core/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-auth/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____/exclusions> ____/dependency>

____dependency> ____groupId>org.apache.hbase/groupId> ____artifactId>hbase-server/artifactId> ____version>${hbase.version}/version> ____optional>true/optional> ____exclusions> ____exclusion> ____artifactId>avro/artifactId> ____groupId>org.apache.avro/groupId> ____/exclusion> ____exclusion> ____artifactId>jruby-complete/artifactId> ____groupId>org.jruby/groupId> ____/exclusion> ____exclusion> ____artifactId>asm/artifactId> ____groupId>asm/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-annotations/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-client/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-common/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-mapreduce-client-jobclient/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-hdfs/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-mapreduce-client-core/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-auth/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____/exclusions> ____/dependency>

____dependency> ____groupId>org.apache.solr/groupId> ____artifactId>solr-core/artifactId> ____version>${solr.version}/version> ____exclusions> ____exclusion> ____groupId>org.apache.zookeeper/groupId> ____artifactId>zookeeper/artifactId> ____/exclusion> ____exclusion> ____groupId>com.spatial4j/groupId> ____artifactId>spatial4j/artifactId> ____/exclusion> ____exclusion> ____artifactId>hadoop-common/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-auth/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-hdfs/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____exclusion> ____artifactId>hadoop-annotations/artifactId> ____groupId>org.apache.hadoop/groupId> ____/exclusion> ____/exclusions> ____/dependency>

now, building has become success. then i add cloudera repository to maven parent pom.xml as follow

repositories> ____repository> ____id>cloudera/id> ____url>https://repository.cloudera.com/artifactory/cloudera-repos//url> ____/repository> ____/repositories>

$mvn clean install -DskipTests -Dmaven.test.skip=true -e -X -Dhadoop2.version=2.5.0-cdh5.2.0

building success, ====================end of building==================== 3:when i using the my building package i find some word in source about guava version, so i chang guava version to 14.0.1. so i modify maven pom ____dependency> ____groupId>com.google.guava/groupId> ____artifactId>guava/artifactId> ____version>14.0.1/version> ____/dependency>

then anything is working well.

this is all my find, thank you !

dalaro commented 9 years ago

Hi,

  1. I'm unable to reproduce this error.
  2. Build profiles for Hadoop distros, including CDH5, are welcome. However, I can't test this, and I'm not sure if it's actually correct; I notice that it does not seem to modify titan-hadoop.
  3. The guava version is probably the single most sensitive one in Titan's dependency list, since so many of Titan's dependencies in turn depend on different versions of Guava (#854). I don't think we can merge this last change.