Java Web应用的部署:
手动式:
编译:javac -cp $CATALINA_HOME/lib/servlet-api.jar web-inf/classes/package/NoodlesServlet.java
打包:jar cvf Restaurant.war .
移动:mv Restaurant.war .../webapps/
项目复杂时:比如项目文件很多 -- IDE如eclipse -->
IDE式:(如eclipse)
下载第三方依赖包,去哪里下载?
目录结构怎么定?
编译、测试、打包、发行,构建流程怎么统一?
项目代码共享和依赖,怎么做?
版本如何管理?
--> 常用工具解决以上问题
Maven:
Java Web的项目构建和依赖管理工具
Apache基金会,开源,由Java写的
选择Maven的理由:
默认对于目录结构进行了限定(约定/惯例优先原则)
提供了三方依赖的管理--解决了依赖的维护问题
提供了一致的项目构建管理方式--减少了构建工作量,降低学习成本
插件式的架构,大量可重用插件
很方便集成了IDE
Maven的安装:
依赖JDK
官网:http://maven.apache.org/
$ brew install maven3
配置环境变量:
M2_HOME=/dir to maven/
PATH=$PATH:$M2_HOME/bin
Maven在构建项目的时候使用的配置:pom.xml
Maven项目的坐标:定位唯一项目(不可重复)
groupId:组织
artifactId:项目标识符
version:版本号(i.e. <version>1.0.0-SNAPSHOT</version>) (SNAPSHOT表示为开发版本)
其他属性:
packaging:类型,i.e. war
dependencies:依赖的项目
基本命令:
mvn archetype:generate:使用模板生成项目
mvn compile:编译
mvn test:单元测试
mvn package:打包War
mvn deploy:部署
mvn site:生成项目相关站点,在线文档之类
mvn clean:清理
mvn install:把包安装到本地仓库,可对其进行依赖
Tomcat插件:Tomcat官方提供的Maven插件:实现在Maven中内嵌启动一个Tomcat
mvn help:describe -Dplugin=tomcat7
常见命令:
mvn tomcat7:run:启动一个嵌入的Tomcat实例
mvn tomcat7:deploy;mvn tomcat7:undeploy等
如何使用Maven管理Tomcat项目:
mkdir 创建目录
mvn archetype:generate -DgroupId=com.netease.restaurant -DartifactId=Restaurant -Dpackage=com.netease -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp 创建项目
生成的目录结构:
生成pom.xml:
缺少对servlet的依赖:在<dependencies></dependencies>中添加依赖
配置插件:编译器的插件和tomcat插件
在main下建立java/com/netease文件夹,并把上节课的Java文件拷贝到该文件夹下
拷贝静态资源到webapp文件夹下
替换WEB-INF下的web.xml为上节课写的web.xml
删除webapp下的index.jsp
运行项目:(注意,在Restaurant目录下运行,否则报错)
mvn tomcat7:run
and it is running
open another terminal tab and curl http://localhost:8080/Restaurant/noodles;it works.
Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven
原文:http://www.cnblogs.com/FudgeBear/p/7241340.html