1. 选择maven project
MyEclipse -> new -> other project -> 输入”maven”搜索 -> 选择maven project
2. Next
选择下一步Next
3.webapp过滤
输入webapp
4.可能出现的问题
不选create a simple project 可能会出现retrieving archetypes: has encountered a problem.这种错误
(1)原因
Apache Maven是当今非常流行的项目构建和管理工具,它把开发人员从繁杂的项目依赖关系处理事务中解放出来,完全自动化管理依赖问题。在Web应用开发过程中,通常我们会用到maven的archetype插件来生成项目框架,用maven构建项目骨架时,速度非常慢,无论是在命令行中直接使用,还是在IDE中使用。
要了解其中的原因,需要知道maven是如何运作的。构建过程中,我们只是向maven提供了一些groupId、artifactId、archetypeArtifactId等信息,只有这些信息的情况下maven是如何构建出整个项目的呢?它的知识来源于哪里呢?答案是:
http://repo1.maven.org/maven2/archetype-catalog.xml
这里记录了,所有archetype构建信息,maven通过archetype插件构建项目骨架时会远程访问页面,通过maven的-X参数可以证明这一点。
(2)解决方法
(1)通过浏览器查看http://repo1.maven.org/maven2/archetype-catalog.xml页源码,另存到本地,命名为archetype-catalog.xml.
(2)把文件archetype-catalog.xml复制到目录.m2\repository\org\apache\maven\archetype\archetype-catalog\2.2下面。
(3)添加到MyEclipse
5.新建后maven java project
新建成功后的基本目录
6.添加log4j
(1)依赖和基本代码
在pom.xml中添加依赖,并在src/main/java中新建MyTest.java
将src/main/resources
目录中添加log4j.properties
pom.xml添加
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
MyTest.java
public class MyTest {
private static Logger logger = Logger.getLogger(MyTest.class);
public static void main(String[] args) {
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
}
}
log4j.properties
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=D://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=D://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =D\://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
(2)运行出错
运行 MyTest.java
, 出现 错误: 找不到或无法加载主类
原因:
在项目根目录新建4个源码文件夹:
src/main/java - 存放类
src/main/resources - 存放配置等资源
src/test/java - 存放测试类
src/test/resources - 存放测试配置等资源
解决方法:
修改src/main/java
和src/main/resources
的输出路径:
右键 -> bulid path -> Source -> 修改
成功打印:
[DEBUG] 2017-02-22 13:45:58,514 method:com.MyTest.main(MyTest.java:13)
This is debug message.
[INFO ] 2017-02-22 13:45:58,516 method:com.MyTest.main(MyTest.java:15)
This is info message.
[ERROR] 2017-02-22 13:45:58,516 method:com.MyTest.main(MyTest.java:17)
This is error message.