maven作为项目依赖管理工具,同时有很多团队将自身优秀的jar包开源出来,极大地便利了Java系的开发。
本文将介绍开发过程中,一些常用的maven包
PB
常用的序列化反序列化包,速度比xml快,在google等公司广泛地使用着。
代码语言:javascript复制<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.5.0</version>
</dependency>
Netty
用于节点之间通信的中间件,简化了节点之间的通信,可以用来设计master/slave式的分布式系统。storm采用netty作为节点间的消息传输模块后,极大的提升了程序的吞吐量。
代码语言:javascript复制<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
<version>3.9.0.Final</version>
</dependency>
Curator
现在的分布式系统多半使用了ZK,而curator简化了ZK操作的API,并进行了自动连接管理,同时实现了很多recipes,极大地简化了分布式系统的开发。
代码语言:javascript复制<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.6.0</version>
</dependency>
Joda
Java常用的日期处理包。
代码语言:javascript复制<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
log4j
工程开发中所用的日志系统。
代码语言:javascript复制<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
MapReduce
用Maven工程开发MapReduc程序。
代码语言:javascript复制</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
</dependency>
分词系统
一个高稳定可用的中文分词工具,可以利用到各种需要文字处理的场景中
代码语言:javascript复制<dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.0.2</version>
</dependency>
Guava
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 如spark等大型平台中,可能会自带guava,如果程序自带guava包与平台的guava包版本不一致时可能会因为兼容性产生运行时错误,这时需要将自身程序引入的guava包移除
代码语言:javascript复制<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>