hoge66的专栏

-----------------------看到专栏,偷着笑!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

项目中遇到的插件概述

Posted on 2015-10-12 10:50  hehoge  阅读(213)  评论(0)    收藏  举报

一、maven-compiler-plugin

maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配的问题,以至于可能导致编译不通过的问题。例如代码中要是使用上了jdk1.7的新特性,但是maven在编译的时候使用的是jdk1.6的版本,那这一段代码是完全不可能编译成.class文件的。为了处理这一种情况的出现,在构建maven项目的时候,我习惯性第一步就是配置maven-compiler-plugin插件

	<!-- jdk1.6配置 -->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
					<compilerId>csharp</compilerId>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.codehaus.plexus</groupId>
						<artifactId>plexus-compiler-csharp</artifactId>
						<version>1.6</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>

  说明:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.6</source> <!-- 源代码使用的开发版本 -->
        <target>1.6</target> <!-- 需要生成的目标class文件的编译版本 -->
        <!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
     
        <!-- 这下面的是可选项 -->
        <meminitial>128m</meminitial>
        <maxmem>512m</maxmem>
        <fork>true</fork> <!-- fork is enable,用于明确表示编译版本配置的可用 --> 
        <compilerVersion>1.3</compilerVersion>
         
        <!-- 这个选项用来传递编译器自身不包含但是却支持的参数选项 -->
        <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument>
         
    </configuration>
</plugin>

 相关阅读:http://my.oschina.net/poorzerg/blog/206856

 二、org.eclipse.m2e

而eclipse正好提供了关于maven2的插件

m2eclipse已经为你创建了一个{user.dir}/.m2/repository的本地中央仓库的文件夹,你可以通过配置settings.xml来更改本地中央仓库的文件夹;

三、tomcat-maven-plugin

The Tomcat Maven Plugin provides goals to manipulate WAR projects within the Tomcat servlet container.将war添加到tomcat容器中;

<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>tomcat-maven-plugin</artifactId>
					<version>1.1</version>
					<configuration>
						<path>/jxcmsnew</path>
						<port>8080</port>
						<uriEncoding>UTF-8</uriEncoding>
						<server>tomcat6</server>
					</configuration>
				</plugin>

  

四、maven-war-plugin

Builds a Web Application Archive (WAR) file from the project output and its dependencies.

构建war,并发布;

<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>2.2</version>
					<configuration>
						<warName>jxcmsnew</warName>
					</configuration>
				</plugin>

  

五、com.google.code.gson

Json转换神器

最快速入门贴:
 
1. 对象的序列化和反序列化
 
Type listType = new TypeToken<List<String>>() {}.getType(); 
List<String> target = new LinkedList<String>(); 
target.add("blah");
Gson gson = new Gson(); 
String json = gson.toJson(target, listType); 
List<String> target2 = gson.fromJson(json, listType);
 
 OK,最简方案打完收工.
 
 
 
六、org.apache.poi
 
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。
Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。
 
 
七、org.codehaus.jackson
 
 Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
 
八、net.sf.ehcache
 
Ehcache在很多项目中都出现过,用法也比较简单。一般的加些配置就可以了,而且Ehcache可以对页面、对象、数据进行缓存,同时支持集群/分布式缓存。如果整合Spring、Hibernate也非常的简单,Spring对Ehcache的支持也非常好。EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布式的Cache,可以作为Hibernate的缓存插件。同时它也能提供基于Filter的Cache,该Filter可以缓存响应的内容并采用Gzip压缩提高响应速度。
<dependency>
			<groupId>net.sf.ehcache</groupId>
			<artifactId>ehcache-core</artifactId>
			<version>2.0.0</version>
		</dependency>

  

 阅读:http://www.cnblogs.com/hoojo/archive/2012/07/12/2587556.html

 九、opensymphony quartz

Quartz是一个完全由java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能, 但就其简易形式看,你会发现它易用得简直让人受不了!。

阅读:http://john-kong19.iteye.com/blog/1158666

<dependency>
			<groupId>opensymphony</groupId>
			<artifactId>quartz</artifactId>
			<version>1.6.2</version>
		</dependency>

  

十、slf4j-log4j12

slf4j-log4j12:链接slf4j-api和log4j中间的适配器。它实现了slf4j-apiz中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法

log4j:这个是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。

<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.1</version>
		</dependency>

  

十一、commons-dbcp

主流数据库连接池之一(DBCP、c3p0、proxool),单独使用DBCP需要使用commons-dbpc.jar、commons-collections.jar、commons-pool.jar三个包,都可以在Apache组织的网站上下到(commons.apache.org)。

阅读:http://www.blogjava.net/wangxinsh55/archive/2007/05/25/120015.html

<!-- 数据源 -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>

		<dependency>
			<groupId>commons-pool</groupId>
			<artifactId>commons-pool</artifactId>
			<version>1.4</version>
		</dependency>

		<!-- 日志依赖 -->
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging-api</artifactId>
			<version>1.1</version>
		</dependency>

  

十二、commons-fileupload

Apache提供的commons-fileupload jar包实现文件上传确实很简单

十三、org.aspectj  aspectjweaver

spring事物配置与依赖

AspectJ(也就是AOP)的动机是发现那些使用传统的编程方法无法很好处理的问题。考虑一个要在某些应用中实施安全策略的问题。安全性是贯穿于系统所有模块间的问题,每个模块都需要应用安全机制才能保证整个系统的安全性,很明显这里的安全策略的实施问题就是一个横切关注点,使用传统的编程解决此问题非常的困难而且容易产生差错,这就正是AOP发挥作用的时候了。@AspectJ 使用了Java5 的注解,可以将切面声明为普通的Java类。

阅读:http://www.cnblogs.com/eflylab/archive/2007/01/01/609353.html

十四、cglib-nodep

Glib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。 

当然这些实际的功能是asm所提供的,asm又是什么?Java字节码操控框架。

cglib就是封装了asm,简化了asm的操作,实现了在运行期动态生成新的class。 

实际上CGlib为spring aop提供了底层的一种实现;为hibernate使用cglib动态生成VO/PO (接口层对象)

cglib-nodep-2.2.jar,这是一个不依赖其他jar的文件。如果选择cglib-2.2.jar,还需要加入几个依赖的jar包才行,在http://cglib.sourceforge.net/dependencies.html列出来了所需要的jar文件

 

引入 cglib-nodep-2.1_3.ja包

cglib产生的代理类是目标类的子类

定义接口,让切面都继承它,方便加入到动态代理方法 的那个类中使用

<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib-nodep</artifactId>
			<version>2.2.2</version>
		</dependency>

  

十五、net.sf.json-lib

JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。

十六、commons-beanutils

1.什么是BeanUtils

BeanUtils主要提供了对于JavaBean进行各种操作。

 

2.BeanUtils的作用:

在一般的写bean组件的时候,都必须要写setter和getter方法,当然假如我们事先已经知道bean的相关属性和方法,写bean是比较简单的,但是组件太多的时候,重复编写经常是枯燥乏味令人厌烦的。但当有些时候我么需要调用动态对象的属性的时候,我们应该怎么来设定和获取对象的属性呢?BeanUtils就可以帮助我们来解决这个问题。它需要Jakarta-Commons -Collections包和Jakarta-Commons -logging包的支持。

<dependency>
		  <groupId>commons-beanutils</groupId>
		  <artifactId>commons-beanutils</artifactId>
		  <version>1.7.0</version>
		</dependency>

  

十七、commons-collections

组件

功能介绍

BeanUtils

提供了对于JavaBean进行各种操作,克隆对象,属性等等.

Betwixt

XML与Java对象之间相互转换.

Codec

处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等.

Collections

java集合框架操作.

Compress

java提供文件打包压缩类库.

Configuration

一个java应用程序的配置管理类库.

DBCP

提供数据库连接池服务.

DbUtils

提供对jdbc 的操作封装来简化数据查询和记录读取操作.

Email

java发送邮件对javamail的封装.

FileUpload

提供文件上传功能.

HttpClien

提供HTTP客户端与服务器的各种通讯操作. 现在已改成HttpComponents

IO

io工具的封装.

Lang

Java基本对象方法的工具类包如:StringUtils,ArrayUtils等等.

Logging

提供的是一个Java 的日志接口.

Validator

提供了客户端和服务器端的数据验证框架.

 

<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>

		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>
		
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.1</version>
		</dependency>

  

 十八、org.apache.xmlbeans

随着企业应用程序的复杂性不断加剧,XML 文档的约束和规则变得越来越严格。此外,随着业界越来越迅速地采用 Web 服务,XML 开始成为跨越多种平台的不可忽视的重要角色。所有这一切意味着,应用程序迫切需要一种简单而强大的机制来处理 XML。

XMLBeans 提供了这样一种机制,可以将 XMLBeans 用于 XML 数据绑定。与其他只支持 W3C XML Schema 规范的某个子集的数据绑定技术不同,XMLBeans 支持完整的规范,从这方面来说,它非常强大。对于习惯于面向对象操作的开发人员来说,它还惊人地易用。

通过 XMLBeans,您可以使用 Java 类访问和操纵 XML 文档中包含的数据。

阅读:http://www.ibm.com/developerworks/cn/xml/x-beans1/

十九、net.sf.ezmorph

EZMorph是一个简单的java类库用于将一种对象转换成另外一种对象。EZMorph原先是Json-lib项目中的转换器。EZMorph支持原始数据类型(Primitive),对象(Object),多维数组转换与DynaBeans的转换。兼容JDK1.3.1,整个类库大小只有76K左右。

阅读:http://blog.csdn.net/hbcui1984/article/details/2896398

二十、com.jolbox BoneCP

BoneCP 是一个快速、免费而且开源的java数据库连接池(JDBC Pool)管理工具库。如果你曾经使用过C3P0或者DBCP,那你肯定知道上面这句话的意思;如果你没用过这些,那简单的解释一下,它是一个能为你的应用管理数据库连接的工具。

阅读:http://www.cnblogs.com/zhwl/archive/2013/07/23/3208550.html

<dependency>
			<groupId>com.jolbox</groupId>
			<artifactId>bonecp</artifactId>
			<version>0.8.0.RELEASE</version>
		</dependency>

  

二十一、org.tuckey  urlrewrite

urlrewrite可以将动态的URL进行伪静态,比如把 
xxxx.jsp?id=1转为http://xxxx/xxx/1 

阅读:http://jackyrong.iteye.com/blog/1087893

<dependency>
			<groupId>org.tuckey</groupId>
			<artifactId>urlrewrite</artifactId>
			<version>2.5.2</version>
		</dependency>

  

二十二、commons-lang3

跟java.lang这个包的作用类似,Commons Lang这一组API也是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。

二十三、log4jdbc-log4j2

使用Log4jdbc-log4j2监听MyBatis中运行的SQL和Connection

 在项目中使用了MyBatis,一个比较苦恼的问题是无法看到执行的SQL的具体情况,所以,就找到了Log4jdbc-log4j2。这个是一个基于jdbc层面的监听工具,可以监听对于数据库的主要操作,从而完美的查看到其中执行的操作。

 二十四、org.apache.cxf

CXF 是Celtix + Xfire的结合体,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。 

阅读:http://chxiaowu.iteye.com/blog/1272494

<dependency>
		  <groupId>org.apache.cxf</groupId>
		  <artifactId>cxf</artifactId>
		  <version>2.6.1</version>
		</dependency>
		<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
		  <groupId>org.apache.cxf</groupId>
		  <artifactId>cxf-rt-frontend-jaxrs</artifactId>
		  <version>2.6.1</version>
		</dependency>

  

二十五、commons-httpclient

Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所有问题。

阅读:http://blog.csdn.net/yaerfeng/article/details/24398343

 

二十六、org.apache.httpcomponents

Commons的HttpClient项目现在是生命的尽头,不再被开发。它已取代由Apache HttpComponents项目HttpClient和的HttpCore模组,提供更好的性能和更大的灵活性。
<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.3.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>fluent-hc</artifactId>
			<version>4.3.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>4.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpmime</artifactId>
			<version>4.3.3</version>
		</dependency>

  

二十七、com.lowagie.itext

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

二十八、org.jsoup

Jsoup是一个非常好的解析网页的包,用java开发的,提供了类似DOM,CSS选择器的方式来查找和提取文档中的内容。

阅读:http://blog.csdn.net/huangxy10/article/details/8188067

二十九、com.belerweb

pinyin4J 是一个可以将汉字转换成拼音的lib,非常实用;

三十、com.caucho hessian

众所周知大名鼎鼎的开源remoting的框架hessian的速度是非常快的,有人做过测试:一个UserData类,有一个字符串属性,一个日期属性,一个double属性,分别用java,hessian来序列化一百万次,结果让人吃惊,不止是hessian序列化的速度要比java的快上一倍,而且hessian序列化后的字节数也要比java的少一倍.总是疑惑不解,为什么hessian的速度会那么快,这估计还是要归功于它的序列化的实现机制。

三十一、CKFinder

CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。文件夹树导航 :用户直观的。

阅读:http://www.cnblogs.com/yuepeng/archive/2013/04/01/2992097.html

<dependency>
		  <groupId>com.ckfinder</groupId>
		  <artifactId>ckfinder</artifactId>
		  <version>2.5.0</version>
		</dependency>
		<dependency>
		  <groupId>com.ckfinder</groupId>
		  <artifactId>ckfinderplugin-fileeditor</artifactId>
		  <version>2.5.0</version>
		</dependency>
		<dependency>
		  <groupId>com.ckfinder</groupId>
		  <artifactId>ckfinderplugin-imageresize</artifactId>
		  <version>2.5.0</version>
		</dependency>
		<dependency>
		  <groupId>com.ckfinder</groupId>
		  <artifactId>ckfinderplugin-watermark</artifactId>
		  <version>2.5.0</version>
		</dependency>
		<dependency>
		  <groupId>com.ckfinder</groupId>
		  <artifactId>thumbnailator</artifactId>
		  <version>0.4.5</version>
		</dependency>