您的位置:首页 > 其它

maven学习笔记整理

2014-07-25 17:29 295 查看
mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT

maven学习网址:http://blog.csdn.net/rockstar541/article/details/20454067

               http://www.cnblogs.com/quanyongan/archive/2013/04/17/3025971.html

               http://www.cnblogs.com/haippy/archive/2012/07/04/2576453.html
http://b-l-east.iteye.com/blog/1246482
创建方法,在一个目录下使用命令:mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp。

按照提示输入相应的参数,中间过程如下:

1.D:\study\workspace4>mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp  

2.[INFO] Scanning for projects...  

3.....  

4.[INFO] Generating project in Interactive mode  

5.Define value for property 'groupId': : com.xjd  

6.Define value for property 'artifactId': : mywebapp  

7.Define value for property 'version':  1.0-SNAPSHOT: :  

8.Define value for property 'package':  com.xjd: :  

9.Confirm properties configuration:  

10.groupId: com.xjd  

11.artifactId: mywebapp  

12.version: 1.0-SNAPSHOT  

13.package: com.xjd  

14. Y: : Y  

15.....  

16.[INFO] BUILD SUCCESS  

17.[INFO] -----------------------------------------  

18.[INFO] Total time: 1:46.199s  

19.[INFO] Finished at: Wed Nov 09 15:02:18 CST 2011  

20.[INFO] Final Memory: 6M/15M  

 用MyEclipse导入Maven创建的工程:

导入有两种方法这里分步讲解:

1) 使用MyEclipse的普通工程导入,步骤如下:

1> 先打开dos,在工程根目录下(mywebapp)运行: mvn eclipse:eclipse---运行完后会发现在工程目录下多出了两个文件.classpath和.project,
这是eclipse的工程文件,当然myeclipse也识别

2> 在MyEclipse中使用导入功能,选择File-->Import...-->Existing Projects into workspace,选择工程目录,导入即可

3> 关联Maven,导入后的工程只是一个普通java的工程,并不会与maven插件相关连,此时在工程上点击右键-->Maven4MyEclipse-->Enable Dependency Management,
这样,这个工程就与Maven插件关联了(关联后工程根节点左上角上会有一个M的标识)。

2)使用MyEclipse中的Maven工程导入,步骤如下:

1> 在MyEclipse中使用导入功能,选择File-->Import...-->Existing Maven Projects(这里不同),选择工程目录,导入即可。---这里导入进,
MyEclipse可能会联网更新索引,很慢,我们可以取消(在Progress面板中点那个大红框),这时工程导进来了,但是没有执行该有的操作,比如maven的dependcy检查等,
此时进行一下第2步操作。

2> 更新一下工程配置,右键工程-->Maven4MyEclipse-->Update Project Configuration

创建Maven项目及说明 http://zghbwjl.blog.163.com/blog/static/1203366722013523102126127/
Maven坐标:groupId:artifactId:packaging:version 

groupId 

         团体,公司,小组,组织,项目,或者其它团体。团体标识的约定是,
 它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。

来自Sonatype的项目有一个以com.sonatype开头的groupId,而Apache Software的项目有以org.apache开头的groupId。

artifactId 

         在groupId下的表示一个单独项目的唯一标识符。(即eclipse的项目名称)

    version 

         一个项目的特定版本。发布的项目有一个固定的版本标识来指向该项目的某一个特定的版本。而正在开发中的项目可以用一个特殊的标识,

         这种标识给版本加上一个“SNAPSHOT”的标记。

     packaging 

         项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用。(输入后在elipse没有反映)

Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5

Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:

Failure to transfer org.apache.maven.plugins:maven-plugins:19 from http://repo.maven.apache.org/maven2 was cached in the local repository,resolution will not reattempted until the update interval of central has elapsed or updates are forced.Original

1.找到maven库目录,进入:~\.m2\repository\org\apache\maven\plugins\maven-surefire-plugin\2.7.1

2.若2.7.1目录下只有,"maven-surefire-plugin-2.7.1.pom.lastUpdated" 则需要到http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.7.1/,把里面的文件下载下来放到2.7.1

3.删除2.7.1下的maven-surefire-plugin-2.7.1.pom.lastUpdated文件。

4.项目右键-->maven-->Update Dependencies

详细的maven的使用可以参照:http://blog.csdn.net/yuguiyang1990/article/details/8797153

myeclispe使用maven进行jar包的管理开发一个servlet项目:

1.参照上面的给出的网址创建一个web项目,是使用maven进行管理的,web项目的结构配置好如下:



2.在pom里面添加包的依赖和属性的配置

<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.xjd</groupId>
<artifactId>mywebapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>mywebapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</dependency>
<!-- 添加Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>

</dependencies>

<build>
<finalName>mywebapp</finalName>
</build>
</project>


3.建立包和写servlet类

 package com.wj.demo2;

import java.io.IOException;

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

public class UserServlet extends HttpServlet{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req,resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
// super.doPost(req, resp);
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String action = req.getParameter("action");
if("login_input".equals(action)){
req.getRequestDispatcher("login.jsp").forward(req , resp);
}else if("login".equals(action)){
String name = req.getParameter("name");
String password = req.getParameter("password");
System.out.println("name->" + name + ",password->" + password);
}
}

}


4.在web.xml里面配置servlet

<!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>
<servlet>
<servlet-name>userservlet</servlet-name>
<servlet-class>com.wj.demo2.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>userservlet</servlet-name>
<url-pattern>/userservlet</url-pattern>
</servlet-mapping>
</web-app>


5.写jsp文件

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>my first maven test</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<p>大家好!</p>
<h2>hello world.!!你好啊 . </h2><br>
<a href="userservlet?action=login_input">去登录</a>
</body>
</html>


写login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>登入界面login</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<form action="userservlet?action=login" method="post">
Name:<input type="text" name="name" /><br>
Password:<input type="password" name="password" />
<input type="submit" value="登录" />
</form>
</body>
</html>


6.项目的完整结构:





7.发布项目,项目的发布和一般的项目发布一样,启动tomcat服务器

8.访问项目;注意maven的web访问不是http://localhost:8080/项目名,而是http://localhost:8080/+<artifactId>mywebapp</artifactId>里面的内容,比如这里的事mywebapp/*.jsp

9.页面结果





登入成功,后台有数据打印出来,可以查看。

这就是maven来管理servlet的过程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: