从titan0.5.4源码学习maven-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

从titan0.5.4源码学习maven

简介: 看了一遍《maven权威指南》,对着titan-0.5.4的源码琢磨了一下。代码没仔细看,撸了一遍pom.xml文件。 以下是我get到的技能: 1.多模块 titan-0.
看了一遍《maven权威指南》,对着titan-0.5.4的源码琢磨了一下。代码没仔细看,撸了一遍pom.xml文件。
以下是我get到的技能:
1.多模块
titan-0.5.4
titan-all
titan-berkeleyje
titan-cassandra
titan-core
titan-dist
    titan-dist-hadoop-1
    titan-dist-hadoop-2
titan-es
titan-hadoop-parent
    titan-hadoop
    titan-hadoop-1
    titan-hadoop-2
    titan-hadoop-core
titan-hbase-parent
    titan-hbase
    titan-hbase-094
    titan-hbase-096
    titan-hbase-098
    titan-hbase-core
titan-lucene
titan-rexster
titan-solr
titan-test



titan-all:
没有什么实质的作用。titan-all里引用了titan这个项目的其他模块。
假如我有一个模块引用了好几个其它的模块,我不想写那么多<dependency>怎么办?
把这些依赖放到titan-all里,然后只引用titan-all这一个”jar“就好了。

titan-dist:
这个是为了发布的时候用的。注意titan-dist里引用了titan-all。

titan-hbase-0.9.x:

hbase0.94对应haddoop1, hbase0.96,hbase0.98对应hadoop2。由pom的<profile>里的<activeByDefault>true</activeByDefault>明确指出


titan-hbase:
就是把titan-hbase-parent下其他模块的代码都整到一个jar包里。看下图。
titan-hadoop:
就是把titan-hadoop-parent下其他模块的代码都整到一个jar包里。看下图。
titan-hbase-parent和titan-hadoop-parent:
就是一个空壳子。

titan-core里用到了titan-hbase和titan-solr模块里的东西,可是titan-core里并没有依赖titan-hbase和titan-solr。这怎么回事?
    titan-core里通过反射类全名来使用titan-hbase和titan-solr模块下的东西。
HBASE("com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager", "hbase"),
"com.thinkaurelius.titan.diskstorage.solr.SolrIndex",











2.抽取共通 ①父pom.xml里定义的东西,子pom.xml可以继承过来。比如父pom.xml里定义的属性,再比如<pluginManagement>的使用。②titan-all模块


3.profile 根据不同的需要编译不同的版本。注意profile有几种不同的激活条件。如果您不了解,强烈建议百度一下。


4.maven-shade-plugin 解决jar包冲突问题。这就厉害了,也非常实用,这个我是看了《OReilly.Learning.Spark.Lightning-Fast.Big.Data.Analysis》这本书之后才知道的。
假如A依赖C.1,B依赖C.2。 显然C.1版本比较旧怎么办? 用maven-shade-plugin这个插件,它会把包名重新命名。说实话我没用过。强烈建议试试。
看看titan三百多个jar包啊。简直就是jar hell。但是这么多jar包人家就能很好的解决冲突问题。


5.pom.xml报错问题。pom.xml里报的错有的是m2eclipse插件的问题。并不是你写错了。 这就需要你了解maven里各种phase。 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章