Maven手工管理项目

1.Maven手工管理简单项目

  1. 创建需要管理的项目目录

SwitchdeMacBook-Pro:webapps switch$ mkdir maven-restaurant
SwitchdeMacBook-Pro:webapps switch$ cd maven-restaurant/
SwitchdeMacBook-Pro:maven-restaurant switch$
  1. 使用mvn archetype:generate 参数,命令生成maven项目模板及pom.xml配置文件(这个生成的是web项目)

SwitchdeMacBook-Pro:maven-restaurant switch$ mvn archetype:generate -DgroupId=com.netease.restaurant -DartifactId=Restaurant -Dpackage=com.netease -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp
[INFO] Using property: groupId = com.netease.restaurant
[INFO] Using property: artifactId = Restaurant
[INFO] Using property: version = 1.0.0-SNAPSHOT
[INFO] Using property: package = com.netease
Confirm properties configuration:
groupId: com.netease.restaurant
artifactId: Restaurant
version: 1.0.0-SNAPSHOT
package: com.netease
Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant
[INFO] Parameter: package, Value: com.netease
[INFO] Parameter: groupId, Value: com.netease.restaurant
[INFO] Parameter: artifactId, Value: Restaurant
[INFO] Parameter: packageName, Value: com.netease
[INFO] Parameter: version, Value: 1.0.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant/Restaurant
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:18 min
[INFO] Finished at: 2016-08-14T12:10:17+08:00
[INFO] Final Memory: 12M/236M
[INFO] ------------------------------------------------------------------------
SwitchdeMacBook-Pro:maven-restaurant switch$ ls
Restaurant
SwitchdeMacBook-Pro:maven-restaurant switch$ 
目录视图
  1. 在main目录下建立java目录,用于存放java文件

SwitchdeMacBook-Pro:maven-restaurant switch$ cd Restaurant/src/main/
SwitchdeMacBook-Pro:main switch$ mkdir java
SwitchdeMacBook-Pro:main switch$ ls
java resources webapp
SwitchdeMacBook-Pro:main switch$ 
  1. 创建包结构

SwitchdeMacBook-Pro:main switch$ cd java/
SwitchdeMacBook-Pro:java switch$ mkdir -p com/netease
SwitchdeMacBook-Pro:java switch$ cd com/netease/
SwitchdeMacBook-Pro:netease switch$ ls
SwitchdeMacBook-Pro:netease switch$
  1. 将java文件放入包中

SwitchdeMacBook-Pro:netease switch$ cp /Users/switch/apache-tomcat-7.0.70/webapps/NoodlesServlet.java .
SwitchdeMacBook-Pro:netease switch$ ls
NoodlesServlet.java
SwitchdeMacBook-Pro:netease switch$ 
  1. 将web.xml文件替换成写好的,或者更改该文件,配置相应参数(这里替换)

SwitchdeMacBook-Pro:netease switch$ cp /Users/switch/apache-tomcat-7.0.70/webapps/web.xml /Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant/Restaurant/src/main/webapp/WEB-INF/
SwitchdeMacBook-Pro:netease switch$ 
  1. 修改pom.xml配置文件

加入servlet依赖,在<dependencies>元素下加入(注意:依赖组件有可能版本更新了,因为我配置了阿里云仓库,所以到http://maven.aliyun.com/nexus/#view-repositories;central~browsestorage去找相应配置)
    <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.0-b01</version><scope>provided</scope></dependency>
配置compiler与tomcat插件,方便调试,在<build>元素下加入
    <plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.6</source><target>1.6</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><uriEncoding>UTF-8</uriEncoding><finalName>Restaurant</finalName><server>tomcat</server></configuration></plugin></plugins>
  1. 启动一个嵌入的Tomcat实例(注意:必须要到配置好了的项目的目录去使用命令,否则启动失败)

SwitchdeMacBook-Pro:Restaurant switch$ pwd
/Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant/Restaurant
SwitchdeMacBook-Pro:Restaurant switch$ mvn tomcat7:run
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Restaurant Maven Webapp 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ Restaurant >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Restaurant ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Restaurant ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] <<< tomcat7-maven-plugin:2.2:run (default-cli) < process-classes @ Restaurant <<<
[INFO]
[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ Restaurant ---
[INFO] Running war on http://localhost:8080/Restaurant
[INFO] Using existing Tomcat server configuration at /Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant/Restaurant/target/tomcat
[INFO] create webapp with contextPath: /Restaurant
八月 14, 2016 1:04:20 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
八月 14, 2016 1:04:20 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
八月 14, 2016 1:04:20 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
八月 14, 2016 1:04:23 下午 org.apache.coyote.AbstractProtocol star
信息: Starting ProtocolHandler ["http-bio-8080"]

2.Maven手工管理多模块项目(以上面为基础)

  1. 使用mvn archetype:generate 参数,命令生成maven项目模板及pom.xml配置文件(这个生成的是java项目)

SwitchdeMacBook-Pro:maven-restaurant switch$ mvn archetype:generate -DgroupId=com.netease.restaurant -DartifactId=Kitchen -Dpackage=com.netease -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart
[INFO] Scanning for projects...
[INFO] Using property: groupId = com.netease.restaurant
[INFO] Using property: artifactId = Kitchen
[INFO] Using property: version = 1.0.0-SNAPSHOT
[INFO] Using property: package = com.netease
Confirm properties configuration:
groupId: com.netease.restaurant
artifactId: Kitchen
version: 1.0.0-SNAPSHOT
package: com.netease
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant
[INFO] Parameter: package, Value: com.netease
[INFO] Parameter: groupId, Value: com.netease.restaurant
[INFO] Parameter: artifactId, Value: Kitchen
[INFO] Parameter: packageName, Value: com.netease
[INFO] Parameter: version, Value: 1.0.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /Users/switch/apache-tomcat-7.0.70/webapps/maven-restaurant/Kitchen
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42.796 s
[INFO] Finished at: 2016-08-14T20:25:26+08:00
[INFO] Final Memory: 17M/309M
[INFO] ------------------------------------------------------------------------
SwitchdeMacBook-Pro:maven-restaurant switch$ ls
Kitchen Restaurant
SwitchdeMacBook-Pro:maven-restaurant switch$ 
目录结构
  1. 创建resource目录

SwitchdeMacBook-Pro:maven-restaurant switch$ cd Kitchen/src/main/
SwitchdeMacBook-Pro:main switch$ mkdir resources
SwitchdeMacBook-Pro:main switch$ ls
java resources
SwitchdeMacBook-Pro:main switch$
  1. 创建一个pom.xml管理多个项目

SwitchdeMacBook-Pro:main switch$ cd ../../../
SwitchdeMacBook-Pro:maven-restaurant switch$ ls
Kitchen Restaurant
SwitchdeMacBook-Pro:maven-restaurant switch$ touch pom.xml
SwitchdeMacBook-Pro:maven-restaurant switch$ 
  1. 配置这个pom.xml文件(添加两个项目(模块))

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.netease.restaurant</groupId><artifactId>restaurant-parent</artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><name> Multi modules demp </name><modules><module>Restaurant</module><module>Kitchen</module></modules>
</project>
  1. 配置这两个项目的pom.xml文件(和上面配置的那个pom.xml做依赖)

都要在<url>元素后面插入
  <parent><groupId>com.netease.restaurant</groupId><artifactId>restaurant-parent</artifactId><version>1.0.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent>
  1. 配置Restaurant项目对Kitchen项目的依赖

在Restaurant项目的pom.xml文件中<dependencies>元素下加入
    <dependency><groupId>com.netease.restaurant</groupId><artifactId>Kitchen</artifactId><version>1.0.0-SNAPSHOT</version></dependency>
  1. 将包安装到本地仓库,让其他项目进行依赖

SwitchdeMacBook-Pro:maven-restaurant switch$ mvn install
[INFO] Reactor Summary:
[INFO]
[INFO] Multi modules demp ................................. SUCCESS [  0.695 s]
[INFO] Kitchen ............................................ SUCCESS [  7.628 s]
[INFO] Restaurant Maven Webapp ............................ SUCCESS [  2.142 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.750 s
[INFO] Finished at: 2016-08-14T21:04:34+08:00
[INFO] Final Memory: 21M/305M
[INFO] ------------------------------------------------------------------------
SwitchdeMacBook-Pro:maven-restaurant switch$ 
  1. 启动一个嵌入的Tomcat实例(注意:必须要到配置好了的项目的目录去使用命令,否则启动失败)

SwitchdeMacBook-Pro:maven-restaurant switch$ cd Restaurant/
SwitchdeMacBook-Pro:Restaurant switch$ mvn tomcat7:run
[INFO] Scanning for projects...
...
[INFO] create webapp with contextPath: /Restaurant
八月 14, 2016 9:07:01 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
八月 14, 2016 9:07:01 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
八月 14, 2016 9:07:01 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
八月 14, 2016 9:07:06 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]

实战:对Restaurant项目进行功能扩展,添加log4j实现日志管理,使用Maven管理对log4j的依赖

  1. 在该项目的pom.xml文件中的<dependencies>元素里添加

    <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.9</version></dependency>
  1. 配置log4j.properties文件,在项目主目录下的src目录下的resources目录,添加log4j.properties文件,并加入

#定义INFO优先级,R为日志输出目的地
log4j.rootLogger=INFO,R
#设置日志输入类型为文件类型
log4j.appender.R=org.apache.log4j.FileAppender
#设置日志文件名
log4j.appender.R.file=my.log
#每次在文件尾写入新的日志信息
log4j.appender.R.Append=true
#日志输出信息格式类型
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#日志输出信息格式为 换行、日期、优先级、[类名]、日志信息、换行
log4j.appender.R.layout.ConversionPattern=%n%d%p[%c]-%m%n
  1. 在java代码中加入

package com.netease;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 以下两条是加入的
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;import com.netease.Kitchen;public class NoodlesServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {PrintWriter writer = response.getWriter();String vegetable = request.getParameter("vegetable");// 以下是加入的// 使用Log4j,记录日志// 创建日志对象Logger log = Logger.getLogger(NoodlesServlet.class);// 记录日志log.info("这次加入的蔬菜是:" + vegetable);String noodles = Kitchen.makeNoodles(vegetable);writer.println(noodles);}
}
PS:配置,运行mvn tomcat7:run(注意,该项目是多模块项目),访问之后,项目主目录的日志文件,内容如下:
2016-08-16 12:03:56,562INFO[com.netease.NoodlesServlet]-这次加入的蔬菜是:null
2016-08-16 12:04:38,452INFO[com.netease.NoodlesServlet]-这次加入的蔬菜是:Tomato
该博客所使用的项目的完整源代码(使用git克隆,使用Maven导入):简单的多模块Maven项目(案例)

-----------参考log4j学习的一个小例子(构建maven工程)
-------------参考《网易云课堂.Java Web开发入门》

Maven手工管理项目相关推荐

  1. 使用Eclipse构建Maven的SpringMVC项目

    http://limingnihao.iteye.com/blog/830409 使用Eclipse构建Maven的SpringMVC项目 首先Eclipse需要安装Maven的插件,地址:http: ...

  2. maven安装与项目创建

    maven安装与项目创建 Maven是一个软件项目管理和理解工具.基于项目对象模型的概念,Maven可以管理项目的根据一条中心信息构建.报告和记录. 文件 最新的文件可以在https://maven. ...

  3. 【Java Web】Myeclipse下运用maven管理项目jar包

    Java Web开发的人都知道经常会为缺少各种jar包而烦恼,经常要去各种地方下载.用maven来管理项目的jar包,就非常方便了,maven会自动帮你下载所需要的各种jar包. 下面就来介绍一下在M ...

  4. apache geode项目结构_使用IntelliJ IDEA+Maven 创建、开发、管理项目

    前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 来源:http://1t.click/ag4d # 前言 本篇开发环境 1.操作系统:Windows 10 X642.Java SDK: ...

  5. [笔记]解决m2eclipse给项目添加maven依赖管理时可能不给项目的build path...

    为什么80%的码农都做不了架构师?>>>    解决办法:在m2eclipse提供的菜单里关闭项目的Maven依赖管理,然后再启动Maven的依赖管理!!! 检查:1)查看项目的.c ...

  6. 如何导出maven子项目_如何使用maven 轻松重构项目

    现在是微服务盛行时代,说不准哪一天领导就会让你对一个大项目进行重构.大项目的痛点:编译慢.发布繁琐等.就像下面这张图: 真的不敢动呀,一不小心就坍塌了. 比如说我们用户系统,我们可以这么重构(这里只是 ...

  7. 子项目依赖和父项目冲突_实战 | maven 轻松重构项目

    现在是微服务盛行时代,说不准哪一天领导就会让你对一个大项目进行重构.大项目的痛点:编译慢.发布繁琐等.就像下面这张图: 真的不敢动呀,一不小心就坍塌了. 比如说我们用户系统,我们可以这么重构(这里只是 ...

  8. 在Eclipse中使用Maven构建Spring项目

    最新版的Spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目为例. maven简单介绍 maven是构建工具,也是构建管理工具.ant只是构建工具 ...

  9. (五)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建根项目

    上一篇我们介绍<springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven模块规划>,从今天开始,我们将对代码的每一个构建做详细的记录,能够帮助大家 ...

最新文章

  1. 递归--练习4--noi666放苹果
  2. 如何构建高可用ZooKeeper集群
  3. 互联网产品发布之灰度发布
  4. 13.7 线程生命周期状态图、线程常用的方法。
  5. 【NLP】FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代
  6. Spring Boot WebMagic 入库时 mapper注入提示空指针,以及正确的操作
  7. 系统部署文档_详解window系统下安装部署SWFTools(文档转换)工具教程
  8. skywalking搭建与使用
  9. OLAP-presto-大数据Week13-DAY-presto
  10. linux下测试磁盘的读写IO速度(IO物理测速)
  11. VoxelMorph运行时遇到的问题
  12. Python网络爬虫——爬取视频网站源视频!
  13. 学习 Java全栈工程师6.0 初学者笔记1 2021-08-09
  14. 最牛最新奶粉事件“争抢奶粉互殴”值得我们大家去深思
  15. Altium Designer 18 生成网络表
  16. java计算机毕业设计物流站环境监测系统源码+系统+数据库+lw文档+mybatis+运行部署
  17. mysql 绿色版的安装过程和配置
  18. 【餐厅点餐平台|一】项目描述+需求分析
  19. Android9.0 完全隐藏导航栏、状态栏
  20. android studio 运行按钮为灰色的解决办法之一

热门文章

  1. Use Visual Studio Code to create and run Transact-SQL scripts for SQL Server
  2. C语言输出字母小树,数字小树,**号小树
  3. Android 实现锚点定位
  4. AttributedString 图片间距问题
  5. 初学java小白的疑惑梳理
  6. java 课后习题 Vector类的 初使用
  7. 【HTML】底部弹窗插件代码
  8. 【Liunx】Linux 系统目录结构
  9. C#LeetCode刷题之#290-单词模式(Word Pattern)
  10. hacker代码_如何仅用7行R代码构建Hacker News Frontpage抓取工具