myeclipse中maven3的使用,部署web項目到tomcat7

myeclipse中須要集成maven3,具體操做能夠參看這篇文章 html

http://www.cnblogs.com/fancyzero/archive/2012/06/09/maven3.html java

這裏就很少加描述 web

在建立web工程前,我們先建立一個普通的maven工程,後面的web工程將會使用到這個工程的jar包 apache

1.普通maven工程建立過程以下,右鍵>>new Maven Project>>next api

輸入對應的groupId,artifactId及包名 tomcat

生成的文件目錄結構以下 服務器

修改App.java app

package com.johnmy.study;

/**
 * 
 * @author JohnmyWork
 * @date 2013-7-30
 */
public class App {
    public static String handleString(String str) {
        return "handled:" + str;
    }
}
保存,執行install

此時會在本地庫中安裝mvnapp的資源內容,下面的web工程能夠直接從maven庫中讀取到資源 eclipse

其實,還有一種更高效的方法,能夠在dos窗口中使用mvn命令快速建立普通工程,再導入到myeclipse中編輯 webapp

-----------------------------------------------------------------------------------------------------------------

如今開始建立web工程

一樣new maven project >> next

輸入相應信息

生成的目錄結構以下

修改目錄結構

修改以後以下

向工程中添加資源包

也能夠直接修改pom文件,這裏引入了以前建立的普通工程

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
        </dependency>

        <dependency>
            <groupId>com.johnmy.study</groupId>
            <artifactId>mvnapp</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

    </dependencies>

新建Myservlet.java並放到study包中

Myservlet.java

package study;

import java.io.IOException;
import java.io.Writer;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.johnmy.study.App;

/**
 * 
 * @author JohnmyWork
 * @date 2013-7-31
 */
public class Myservlet extends HttpServlet {

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		super.doGet(req, resp);
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String input = req.getParameter("name");
		Writer out = resp.getWriter();
		out.append(App.handleString(input));
	}

	private static final long serialVersionUID = 1L;

}
修改web.xml,及index.jsp

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
	<display-name>Archetype Created Web Application</display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<servlet>
		<servlet-name>Myservlet</servlet-name>
		<servlet-class>study.Myservlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Myservlet</servlet-name>
		<url-pattern>/myservlet</url-pattern>
	</servlet-mapping>
</web-app>

index.jsp


<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>hello maven!</title>
</head>
<body>
	<form action="myservlet" method="get">
		name:<input name="name"> <input type="submit">
	</form>
</body>
</html>
差很少了,執行下maven test,maven install看下有木有問題


 BUILD SUCCESS !!一切正常

下面就把項目部署到tomcat7中

部署以前先修改下tomcat的配置文件

D:\WebContainer\3-tomcat7\apache-tomcat-7.0.39\conf\tomcat-users.xml


<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
 <role rolename="manager-gui"/>
 <role rolename="manager" />
 <role rolename="manager-script"/>
 <user username="tomcat" password="tomcat" roles="manager-gui,manager,manager-script"/>
</tomcat-users>
還有修改下maven3的配置文件


D:\Program Files\MavenServer\maven3\conf\settings.xml

找到servers修改之

<servers>
	<server>
      <id>mytomcat7</id>
      <username>tomcat</username>
      <password>tomcat</password>
    </server>
  </servers>


外部配置好了,如今配置下web工程中的pom,添加tomcat7-maven-plugin


    <build>
        <finalName>mvnwebapp</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2-SNAPSHOT</version>
                <configuration>
                    <path>/${project.build.finalName}</path>
                    <server>mytomcat7</server>
                    <!-- 這裏是本地tomcat,若是是遠程服務器能夠改爲對應的地址,實現自動部署-->
                    <url>http://localhost:8080/manager/text</url>
                 </configuration>
            </plugin>
        </plugins>
    </build>


添加插件倉庫配置,下面這兩個任選其一或者兩個都用

<repositories>
		<repository>
			<id>apache.snapshots</id>
			<url>https://repository.apache.org/content/repositories/snapshots</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
<pluginRepositories>
		<pluginRepository>
			<id>apache.snapshots</id>
			<name>Apache Snapshots</name>
			<url>https://repository.apache.org/content/repositories/snapshots</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>

啓動tomcat7,執行maven build

配置goals

run

訪問http://localhost:8080/mvnwebapp/

提交後

成功!!!!!!

調用了普通工程的jar中的handleString()方法

若是普通工程的jar有更新並從新發布到tomcat中

只須要簡單的maven install,maven bulid

修改handleString方法

public static String handleString(String str) {
		return "nice!!! you handled it:" + str+"\n"+new Date().toString();
	}

在mvnapp中執行maven install

在mvnwebapp中執行maven bulid

--------------------------------完---------------------------------

若有錯誤或問題,請指出,謝謝

相關文章
相關標籤/搜索