Java for Web学习笔记(三):Servlet(1)Maven

什么是Maven

在http://maven.apache.org/中对Mavent进行介绍,可以:

一、发布project信息

二、管理Jar包

三、提供uniform build system,使用POM(project object model)

如果我们使用Eclipse是最新的Mars版本,Maven已经集成进来,所以不需要进行额外的配置,当然,如果我们需要自行安装一个特定位置的maven,可以参考 http://blog.csdn.net/qjyong/article/details/9098213 。这种情况也比较常见,特别是机器有多个项目,将各个项目的开发环境隔离开来。我甚至装了几个Eclipse,不同的配置不同的全局环境,确保隔离。这里简单说说maven的安装和配置:

(1)在http://maven.apache.org/download.cgi中下载,直接解压即可

(2)进入maven/conf/setting.xml进行配置

修改本地仓库的的位置,检索localRepository,我们看到缺省位置在${user.home}/.m2/repository,对于Windows,这个就是用户缺省位置,一般在C盘Documents and Settings或者用户下面。一般能不放C盘就不放,换个位置。

<localRepository>D:/.m2/repository</localRepository>

添加镜像,国外的http://repo1.maven.org/maven2/,加国内的http://maven.oschina.net/content/groups/public/。具体看各人的网络。

<mirror>
        <id>central</id>
        <mirrorOf>central</mirrorOf>
        <name>Maven central</name>
        <url>http://repo1.maven.org/maven2/</url>
    </mirror>

(3)在Eclipse配置为我们指定的Maven

Window –> Preferences –>Maven,点击,选上Download repository index updates on startup,然后在 Window –> Preferences –>Maven->Installations->Add,添加我们安装Apache maven的目录。

在Window –> Preferences –>Maven->User Settings中将xml文件指向maven/conf/setting.xml。即使用该配置。

 

通过Maven创建动态webapp

(1)创建Mavent project

File-》New-》Maven Project->Next->选择maven-archetype-webapp,填入Group Id,通常就是我们的公司名字倒序,例如cn.wei.flowingflying,Artifact Id为项目名字,例如Chapter03,则自动包名为cn.wei.flowingflying.Chapter03->Finish。

Java for Web学习笔记(三):Servlet(1)Maven_第1张图片

(2)关联servlet

创建项目后,我们看到的项目结构:

Java for Web学习笔记(三):Servlet(1)Maven_第2张图片

我们会看到有一个Error:The superclass “javax.servlet.http.HttpServlet”was not found on the Java Build Path。这说明依赖的相关jar包没有关联。在pom.xml中进行相关的设置。pom.xml中关联了junit,如果不需要,可以删掉,关键要加上servlet所需的关联,如下:

<dependencies>
     <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
         <scope>provided</scope>
    </dependency>
</dependencies>

(3)转换为Dynamic web Project

我们首先要进行版本的匹配,目前需要手工进行。否者可能会报下面的错误,只能使用动态web2.3的老版本

Cannot change version of project facet Dynamic Web Module to 3.1

打开项目的目录,有.settings/目录,打开里面的org.eclipse.wst.common.project.facet.core.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
       <fixed facet="wst.jsdt.web"/>
       <installed facet="java" version="1.5"/>
       <installed facet="jst.web" version="2.3"/>
       <installed facet="wst.jsdt.web" version="1.0"/>
    </faceted-project>

重点修改两个地方,一是java的版本,缺省好像是配置1.5,使用我们的开发所用的java版本,这里设置1.8,另一个就是jst.web中,将2.3的版本改为目前最高的3.1版本。

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
    <fixed facet="wst.jsdt.web"/>
    <installed facet="java" version="1.8"/>
    <installed facet="jst.web" version="3.1"/>
    <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>  

我们需要统一编译环境的java版本,在Eclipse的项目右键->Properties,分别在Java Build Path的Libraries和Java Compiler中确定Java的版本是否正确。然后进入Project Facets,如下图所示,按OK确认。

Java for Web学习笔记(三):Servlet(1)Maven_第3张图片 

我们按项目右键-》Close project,然后项目右键-》Open project,我们就可以看到熟悉的Dynamic web项目架构:

Java for Web学习笔记(三):Servlet(1)Maven_第4张图片 

(4)在Dynamic Web中补充web.xml

在最新的Dynamic Web是不需要自己写web.xml,实际上我们用Eclipse直接创建动态web项目是没有web.xml。但是Maven转换过来,是有一个web.xml,但需要修改为标准的xml格式:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

</web-app>

我们在项目中添加一个Servlet进行测试或者直接运行也可以,有一个Hello,World的index.asp。

相关链接: 我的Professional Java for Web Applications相关文章

 
 

你可能感兴趣的:(Java for Web学习笔记(三):Servlet(1)Maven)