博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven 配置
阅读量:4031 次
发布时间:2019-05-24

本文共 2903 字,大约阅读时间需要 9 分钟。

一直用Maven作项目构建,Maven用起来比Ant要方便,起初为了不想在ant的构建脚本上多花精力,选择了Maven,但是后来实践证明,选择是正确的,那么是不是把时间精力省下来了呢,事实证明我并没有因为选择了Maven而节省下多少时间,在构建构建工具多花时间精力是值得的,但Maven给我的回报远远超出我的预期。
Maven能做什么?基本上Ant能做的Maven都能作,且很多地方做得更好。为什么这么说呢,不讲理论了,用事实证明!。Struts2,WebWork2,Spring2,Appfuse2等比较有分量的项目都能看到Maven的身影。另他最大的特点是其依赖包管理系统,这个观念不是新观念了,Debian/Ubuntu,Ruby-Gems都采用类似的思想来管理依赖包/库。
熟悉了Maven2的项目配置文件后,可以不写一行构建脚本,仅仅十几行按部就班的依赖包配置,就可以完成一个完整web项目的编译,测试,打包,清理等任务,但如果想要Maven做得更多,follow me...
先从一个最简单的web项目开始,假定这个项目名称就叫做myweb,JDK1.5以上,Linux系统(XP上使用方法是一样的,只不过XP的cmd太烂了,没有Linux的console好用,或者我太菜,用不来XP高深的cmd命令行界面)。
1)  安装Maven,安装过程略,简单的说就跟你装ant一样,官方网站
2)  建立项目骨架,开一个Linux的console命令行窗口,输入以下命令:
java 代码
  1. mvn archetype:create \  
  2. -DgroupId=com.mycompany.webapp \  
  3. -DartifactId=myweb \  
  4. -DarchetypeArtifactId=maven-archetype-webapp  
简单解释一下:
archetype  是一个内建插件,他的create任务将建立项目骨架
archetypeArtifactId   项目骨架的类型
可用项目骨架有:
* maven-archetype-archetype
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple, and
* maven-archetype-webapp
groupId  项目的java包结构,可修改
artifactId  项目的名称,生成的项目目录也是这个名字,可修改
在当前目录下会生成一个myweb文件夹,这个文件就是我们的项目文件夹了
3)  补全项目的目录结构,因为生成的项目骨架是个webapp最小化骨架结构,与Maven的标准项目布局还有差距,
Maven标准项目布局结构见
其实就是要自己手动建立几个目录而已,下面一条命令全部搞定
java 代码
  1. mkdir -p src/{main/java/com/mycompany/webapp,test/java/com/mycompany/webapp,test/resources}  
4)  添加一个嵌入式servlet/jsp容器jetty6,用nio重写过的嵌入式服务器,开发和调试web项目非常方便,这里需要编辑唯一的配置文件pom.xml,其实并不难
xml 代码
 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.   <modelVersion>4.0.0<!---->modelVersion>  
  4.   <groupId>com.mycompany.webapp<!---->groupId>  
  5.   <artifactId>myweb<!---->artifactId>  
  6.   <packaging>war<!---->packaging>  
  7.   <version>1.0-SNAPSHOT<!---->version>  
  8.   <name>myweb Maven Webapp<!---->name>  
  9.   <url>http://maven.apache.org<!---->url>  
  10.   <dependencies>  
  11.     <dependency>  
  12.       <groupId>junit<!---->groupId>  
  13.       <artifactId>junit<!---->artifactId>  
  14.       <version>3.8.1<!---->version>  
  15.       <scope>test<!---->scope>  
  16.     <!---->dependency>  
  17.   <!---->dependencies>  
  18.   <build>  
  19.     <finalName>myweb<!---->finalName> 
  20.     <!---->
  21.     <plugins>  
  22.       <plugin>  
  23.         <groupId>org.mortbay.jetty<!---->groupId>  
  24.         <artifactId>maven-jetty-plugin<!---->artifactId>  
  25.       <!---->plugin>  
  26.     <!---->plugins> 
  27.     <!---->
  28.   <!---->build>  
  29. <!---->project>  
5)  运行测试
java 代码
  1. mvn jetty:run  
在网络正常联通的情况下,maven会自动下载所有的jar依赖包,然后启动jetty6,可以在浏览器中访问
Jetty6已经启动并显示了经典到掉渣的“Hello World!”
现在可以修改src/main/webapp/index.jsp,然后在浏览器刷新看效果了,最简单的web骨架就这样诞生了
停止jetty6的命令是Ctrl+C
之后,可以在pom.xml中添加spring,hibernate/ibatis,struts/struts2/webwork2以及report,xdoclet,hibernate代码生成工具,DbUnit等等...(今天写道这里,以后在写吧)
推荐两篇文章:
http://www.blogjava.net/calvin/archive/2006/03/19/36098.html
http://www.ibm.com/developerworks/cn/opensource/os-maven2/

转载地址:http://xnebi.baihongyu.com/

你可能感兴趣的文章
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>
iOS 扫一扫功能开发
查看>>
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
jQuery性能优化指南
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>