Maven学习笔记(2) -- Eclipse & Maven

1.通过 Eclipse 构建 Maven 项目
  • 1) 创建简单 Maven 项目

File -> New -> Ohter -> Maven
选中 Maven Project 并点击 Next ,到下一个对话框继续点击 Next ,再新对话框中选择 maven-archetype-quickstart,点击 Next 填写好 groupId, artfactId, version 等信息,点击 Finish。

  • 2) 创建 Maven Web 项目

操作和简单 Maven 项目基本一样,只是在选择 maven-archetype 时选择 maven-archetype-webapp

创建完成后,右击项目,点击 Properties -> Project Facets,修改 JavaDynamic Web Module 为我们所需的版本。

也可通过修改 {my-app-web}/.settings/org.eclipse.wst.common.project.facet.core.xml 文件来实现。

2.Eclipse 下 部署 Maven 项目到 Tomcat (以 Tomcat7 为例)
  • 1) Tomcat 认证

添加具有角色管理器GUI和管理脚本的用户。修改 %TOMCAT7_PATH%/conf/tomcat-users.xml 文件

<?xml version='1.0' encoding='utf-8'?>  
<tomcat-users>  
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="admin" password="password" roles="manager-gui,manager-script" />
</tomcat-users>  
  • 2) Maven 认证

添加在上面 Maven 设置文件的 Tomcat 用户,Maven 要使用此用户来登录Tomcat服务器。

文件位置 %MAVEN_PATH%/conf/settings.xml

<?xml version="1.0" encoding="UTF-8"?>  
<settings ...>  
    <servers>      
        <server>
            <id>TomcatServer</id>
            <username>admin</username>
            <password>password</password>
        </server>
    </servers>
</settings>  
  • 3) 声明一个Maven的Tomcat插件。

修改 pom.xml,在 <build><plugins> 下加入

    <plugin>        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration
<url>http://localhost:8080/manager/text</url>  
            <server>TomcatServer</server>
            <path>/maven</path>
        </configuration>
    </plugin>

感觉是我的 Eclipse Maven 配置的有问题,即使修改了 settings.xml,还是会报 401 Unauthorized 错误,固又在上面的 <configuration> 中添加了一下配置。

<username>admin</username>            <password>password</password>  
  • 4) 怎么运行的?

在部署过程中,它告诉 Maven 通过部署 WAR 文件Tomcat服务器, http://localhost:8080/manager/text , 在路径 /maven 上, 使用 TomcatServer (settings.xml) 用户名和密码来进行认证。

  • 5) 发布到Tomcat

以下的命令是用来操纵 Tomcat WAR 文件。

mvn tomcat7:deploy  
mvn tomcat7:undeploy  
mvn tomcat7:redeploy