Eclipse4.2+Tomcat7+Maven3+Servlet3.0 J2EE工程配置说明
OneCoder准备自己慢慢写点东西,把离散的知识点汇总一下。给出的版本没什么特别的含义,只是OneCoder目前使用的环境而已。 <ul> <li> IDE:Eclipse4.2 JUNO。</li> <li> 应用服务器:Tomcat7.0.30(Servlet3.0)</li> <li> 项目构建工具: Maven 3.0.4</li> <li> JDK版本:1.7.07</li> <li> 日志组件:logback最新版</li> <li> 单元测试框架:Junit</li> </ul> <div> 为什么都用最新版本?因为OneCoder是个新版控呵呵。</div> <div> 为了以后管理方便,先建一个全局的parent工程,统一控制jar包依赖的版本。然后新建一个Maven管理的Web工程,parent指定为onecoder-parent工程。</div>
Parent pom.xml配置样例:(主要是版本变量定义,依赖包设置和编译级别设置)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>onecoder-parent</groupId>
<artifactId>onecoder-parent</artifactId>
<version>0.1</version>
<packaging>pom</packaging>
<properties>
<logback.version>1.0.7</logback.version>
<slf4j.version>1.7.1</slf4j.version>
<junit.version>4.10</junit.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_HOME}/bin/javac</executable>
<compilerVersion>1.7</compilerVersion>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
logback的简要配置:
1
2
3
4
5
6
7
8
9
10
11
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy/MM/dd-HH:mm:ss} %level [%thread] %C - %msg%n</pattern>
</encoder >
</appender>
<root level="INFO">
<appender-ref ref="console" />
</root>
</configuration>
扔到src/main/resources下。
接下来应该写Servlet了。Servlet3.0的一大亮点就是支持注解配置。所以你会发现没有了web.xml配置文件。Servlet写起来也很简单。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* Servlet3.0 Servlet使用样例
* @author lihzh
* @alia OneCoder
* @blog http://www.coderli.com
*/
@WebServlet(name = "FirstServlet", urlPatterns = { "/firstservlet"})
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 3038754482452604279L;
private static final Logger log = LoggerFactory.getLogger(FirstServlet.class);
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
log.info("This is log");
out.println("hello,world...");
out.close();
}
}
运行一下?等等。我们知道一个web工程运行时依赖的jar包是需要放到WEB-INF/lib下的,这里明显看到lib下空的,并且我们的jar包是通过Maven管理的,难道要手动拷贝过去吗?OneCoder以前还真干过这样的啥事,甚至还自己开发了脚本,做所谓的“一键自动化”工作。其实Eclipse里已经帮你做好了。在工程的Properties配置项里的Deployment Assembly配置里,配好Maven的依赖和部署即可,如图: