Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven

第4章--Maven

Maven实战

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.

_

时间: 2024-12-29 15:39:52

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven的相关文章

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第6章.蜂巢

第6章--蜂巢 蜂巢简介 网站开发完,就需要测试.部署.在服务器上运行. 网易蜂巢: 采用Docker容器化技术的云计算平台 https://c.163.com 容器管理:容器可被视作为云主机的服务器 服务管理:服务可由多个容器组成,可以有多个副本 镜像仓库:可快速创建容器和服务 后端服务:blahblahblah 特点: 保证环境一致: 实际中开发环境.测试环境.生产环境等会不大相同 环境差异可能会导致业务代码运行得到不同结果 蜂巢底层采用Docker容器:把业务代码和运行环境打包成为一个镜像

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第3章.Servlet应用

第3章.Servlet应用 转发与重定向 过滤器与监听器 Servlet并发处理

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第2章.HTTP协议简介

第2章--HTTP协议简介 HTTP协议简介 Abstract: HTTP协议的特性,HTTP请求/响应的过程,HTTP请求/响应的报文格式等知识,最后会演示如何通过Chrome提供的开发者工具,去跟踪调试一次HTTP请求. HTTP protocol: 请求响应式协议: client -->  server : HTTP 请求 client <--  server : HTTP 响应 一个HTTP请求和一个HTTP响应 -->  一次HTTP事务 任意两次HTTP事务都是indepen

Android开发工程师应该知道的50个开发秘诀、技巧和资源分享

作者撰写本文的初衷,是为了罗列出Android Studio有用的提示.技巧.快捷方式和参考资源,将提高您的整体效率和操作性能. 显然,还有很多优化.快捷方式等,但作者为了保持这篇文章的简短,限制为50个,希望读者会喜欢这篇文章! InfoQ注:本文是以MacOS X操作Android Studio为例,与Windows / Linux不一致的地方已经标注,请读者注意这一点. 可视化 1.Android Logcat的材料颜色主题(Material Colors theme). 要更改Andro

【转】测试开发工程师必备软硬能力&amp;高级测试开发工程师需要具备什么能力?

对于测试的基本知识,可以查看软件测试相关书籍 对于在公司成为一位优秀的测试开发工程师,我觉得下面这篇文章涉及到的是我们需要的,稍微进行改动https://blog.csdn.net/sinat_21026543/article/details/79909062 测试流程方面:从最开始的分析需求开始,逐步地跟着项目走完整个测试流程,包括纯手工测试,包含了自动化的测试流程,包含了性能测试的测试流程,直至每一个测试报告的最终形成,理解一个科学,正确,严谨,正规化的测试流程. 测试方法方面:注重理论知识

PHP开发工程师面试真题之Web网页设计(附参考答案)

今天有幸被召回母校给即将毕业的学弟学妹们讲我这两年的工作史,看了下母校没啥特别的变化,就是寝室都安了空调,学妹们都非常漂亮而已..好了不扯蛋了,说下今天的主题吧.这些天我在深度定制语法高亮功能的同时发现了博客园提供的一些有意思的函数,甚至有几个博客园都没用到,我也不知道怎么才能触发那些功能..打开这个js就可以看到很多好用的东西了,虽然写的不怎么样,但是至少有这些功能. ps: 推荐安装一个代码格式化的插件,否则一坨看着蛋疼.比如第一个就是 log,方便调试. http://www.qidian

干货系列1:Java互联网网站开发工程师 的技术提高与晋升路线(技术专精)

前几天写了自己对于Java软件开发工程师职业发展规划方面的一些感悟,陆续收到一些反馈,希望我能再就Java工程师不同的开发(职责)方向谈谈职业发展问题.(上一篇:Java软件开发工程师的自我修养与晋升(B/S结构)下面就具体谈谈Java程序员的另一个职责方向:Java互联网开发工程师 Java互联网开发工程师的主要岗位职责是: 负责网站平台的系统设计.数据库设计.代码开发,以及技术攻关的工作. 职业发展道路基本有3条: 第一条路线(技术专精): 初级Java开发---中级--高级---项目主管-

[web建站] 极客WEB大前端专家级开发工程师培训视频教程

极客WEB大前端专家级开发工程师培训视频教程  教程下载地址: http://www.fu83.cn/thread-355-1-1.html 课程目录:1.走进前端工程师的世界HTML51.HTML5与HTML4的区别2.HTML5新增的主体结构元素3.HTML5新增的的非主体结构元素 4.HTML5表单新增元素与属性5.HTML5表单新增元素与属性(续)6.HTML5改良的input元素的种类 7.HTML5增强的页面元素8.HTML5编辑API之Range对象(一)9.HTML5编辑API之

我也想成为一名出色的web前端开发工程师

随着互联网的发展,正式的前端工程师角色被行业认可,到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越快,各种新的思想.设计模式.工具和平台都快速发展,对前端工程师的技能要求也越来越高. 何为前端工程师?前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性.组件