Maven手工管理项目
来源:互联网 发布:炉石传说diy软件 编辑:程序博客网 时间:2024/06/11 10:27
Maven手工管理项目
1.Maven手工管理简单项目
创建需要管理的项目目录
SwitchdeMacBook-Pro:webapps switch$ mkdir maven-restaurant
SwitchdeMacBook-Pro:webapps switch$ cd maven-restaurant/
SwitchdeMacBook-Pro:maven-restaurant switch$
使用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
[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] ------------------------------------------------------------------------
[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
Restaurant
SwitchdeMacBook-Pro:maven-restaurant switch$
目录视图
在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$ mkdir java
SwitchdeMacBook-Pro:main switch$ ls
java resources webapp
SwitchdeMacBook-Pro:main switch$
创建包结构
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:java switch$ cd com/netease/
SwitchdeMacBook-Pro:netease switch$ ls
SwitchdeMacBook-Pro:netease switch$
将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$ ls
NoodlesServlet.java
SwitchdeMacBook-Pro:netease switch$
将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$
修改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>
启动一个嵌入的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
[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手工管理多模块项目(以上面为基础)
使用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] ------------------------------------------------------------------------
[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
Kitchen Restaurant
SwitchdeMacBook-Pro:maven-restaurant switch$
目录结构
创建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$ mkdir resources
SwitchdeMacBook-Pro:main switch$ ls
java resources
SwitchdeMacBook-Pro:main switch$
创建一个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$ ls
Kitchen Restaurant
SwitchdeMacBook-Pro:maven-restaurant switch$ touch pom.xml
SwitchdeMacBook-Pro:maven-restaurant switch$
配置这个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>
配置这两个项目的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>
配置Restaurant项目对Kitchen项目的依赖
在Restaurant项目的pom.xml文件中<dependencies>元素下加入
<dependency> <groupId>com.netease.restaurant</groupId> <artifactId>Kitchen</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency>
将包安装到本地仓库,让其他项目进行依赖
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] ------------------------------------------------------------------------
[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$
启动一个嵌入的Tomcat实例(注意:必须要到配置好了的项目的目录去使用命令,否则启动失败)
SwitchdeMacBook-Pro:maven-restaurant switch$ cd Restaurant/
SwitchdeMacBook-Pro:Restaurant switch$ mvn tomcat7:run
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
八月 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的依赖
在该项目的pom.xml文件中的<dependencies>元素里添加
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.9</version> </dependency>
配置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
在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开发入门》
1 0
- Maven手工管理项目
- 手工创建maven 项目
- maven学习--手工搭建简单的maven项目
- Maven-项目管理
- maven管理java项目
- MAVEN 项目管理
- maven管理eclipse项目
- 使用Maven管理项目
- maven 项目依赖管理
- Maven 项目管理 序
- maven项目管理
- maven管理项目
- Maven管理Android项目
- maven项目管理
- maven 项目依赖管理
- 学学maven管理项目
- maven项目管理
- maven项目管理
- easy problem from rujia liu
- php 相关的类与对象
- ScrollView 包含 RecyclerView 遇到的坑
- spring的annotation-driven配置事务管理器详解
- MediaCodec硬编码成H264视频流
- Maven手工管理项目
- PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
- 5.5 GDI 映射模式
- centos7+nginx+keepalived互为主从
- 通过 String.intern() 方法来优化字符串
- Java 给定一个指定日期 加上天数 输出加上天数的日期
- 如何隐藏QTabWidget中的一个tab
- 学习
- 5.6 矩形、区域和裁剪