Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266035
  • 博文数量: 34
  • 博客积分: 569
  • 博客等级: 中士
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-10 14:10
文章分类

全部博文(34)

文章存档

2016年(6)

2014年(1)

2013年(5)

2012年(22)

我的朋友

分类: Java

2012-05-21 13:33:26

场景说明

一、现在的项目中对于各种jar包的依赖关系都是使用手工的方式进行,非常麻烦,项目组之间相同的环境变量可能会取不同的变量名,为项目的维护照成一些困扰。

二、MyEclipse打包war的时候会把所有的依赖关系都打包到文件中,最后生成的.war文件一般都在20M~30M左右,远程部署的时候,特别是网速不给力的情况下很折磨人。

 

操作

前置工作

1、JDK (略)

2、MyEclipse(略)

3、Maven(略)

 

开始操作

1、新建Web项目。

image

2、增加Maven支持,"finish"

image

3、打开pom.xml,因为是web项目,所以系统自动添加了J2EE的依赖关系。

image

4、笔者建议将自带的J2EE依赖全部删除,然后新增依赖geronimo-servlet_2.5_spec,scope选择provided,这样J2EE的包就只在编译阶段起作用,运行、打包的时候就不会加载相关的jar。

image

5、增加其他项目需要的依赖

image

,其中oracle的依赖在添加的时候会报错,因为Repository中更新第三方的jar包不一定是及时的,所以将ojdbc14.jar install到本地仓库,方法如下

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=1.0 -Dpackaging=jar -Dfile=ojdbc14.jar 

-Dversion是jar的版本,因为项目只用到这个版本的jar,不会变化,所以我就设置版本为1.0,也可以设置成其他。

-Dfile=ojdbc14.jar  是ojdbc14.jar 的路径,默认是在C:\Documents and Settings\${用户}目录下,也可以指定具体的路径,譬如-Dfile=E:\ojdbc14.jar 

为了给war包瘦身,我们假定所有的依赖库在tomcat的lib下都存在,所以我们将新添加的这些包都设置成provided,当然,junit是测试用的,他的范围是test。

6、将Maven的settings.xml中的servers节点中增加tomcat的配置


  1. <server>
  2.  <id>tomcat6</id>
  3.  <username>admin</username>
  4.  <password>admin</password>
  5. </server>

其中id是该web服务的id,可以在pom.xml中直接引用,username和password与${TOMCAT_HOME}\conf\tomcat-users.xml的相同。

然后在项目的pom.xml增加tomcat的支持插件,

  1. <plugin>
  2.   <groupId>org.codehaus.mojo</groupId>
  3.   <artifactId>tomcat-maven-plugin</artifactId>
  4.   <version>1.1</version>
  5.   <configuration>
  6.          <url>http://localhost:8080/manager</url>
  7.          <server>tomcat6</server>
  8.   </configuration>
  9. </plugin>


configuration节点中的url是该tomcat服务器的管理页面,直接到manager就可以了,不要加/html,可能会无法调用。

server节点就是Maven的settings.xml中的服务器的id。

7、部署到tomcat中。

首先确认tomcat是运行中的状态

然后右键项目,Run As选择 Maven build,

image

然后再Goals填写命令package tomcat:redeploy,run,就成功了。

 

备注

1、新建web项目的时候,myeclipse会自动添加J2EE的依赖关系保证项目可以正常编译,笔者在不删除这些关系的情况下继续操作项目,最后诡异的事情发生了,所有的jar包,不论是不是scope是不是provided都被打包到war文件夹中,不但体积很大,还和${TOMCAT_HOME}\lib中的包冲突,找了好久都没找到原因

2、可以在Maven的settings.xml中配置多个服务器,这样打包运行的时候可以直接发送到目标环境,比较方便。

阅读(32869) | 评论(0) | 转发(1) |
0

上一篇:没有了

下一篇:<!DOCTYPE html>

给主人留下些什么吧!~~