Maven入门1-在Eclipse中新建Maven Web项目
在eclipse中新建Maven Web项目
很多时候开发效率低下,大部分原因是IDE环境不熟悉、配置不会配置;因此在学习一项技能之前,有必要对基本的环境配置有所了解,正所谓磨刀不误砍柴工。这篇文章主要针对初次接触Maven,不熟悉配置的研究人员。
1、Maven配置及介绍
Maven官网:http://maven.apache.org/
以前开发Java Web工程时,需要导入很多依赖包,但是随着工程逐渐变大,所管理的包越来越多,有必要使用工具来管理这些包,这样不需要我们手动导入;Maven就是为了解决管理jar的问题。
如下,一个经典的导入springmvc依赖的配置:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
<dependencies>
通过三个坐标值,定位到我们所需的依赖包;
关于pom文件的介绍,官方文档:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
下面介绍如何配置Maven:
1)下载Maven
http://maven.apache.org/download.cgi 官网下载apache-maven-3.5.0-bin.zip,到本地目录,然后解压,比如放到E:\JavaWeb目录下。
2)配置Maven环境变量
这个网上很多教程,与配置Java环境变量是一样的。配置好之后在命令行窗口输入 mvn -v:如果显示maven的版本,证明环境变量配置成功;
3)Maven基本配置
将maven目录下conf-->settings.xml文件拷贝到,C盘-->用户-->.m2文件夹下
为什么这么做呢?有两个原因,1. eclipse默认加载maven配置是加载这个路径下的settings文件; 2.这样配置之后如果后期更新maven的版本不需要修改配置。如下图所示,第二个是默认下载的包存在哪个地方,也就是本地仓库。
配置settings.xml文件:
<!-- 官方推荐但是不可用,需要配置代理
<mirror>
<id>UK</id>
<mirrorOf>central</mirrorOf>
<name>UK Central</name>
<url>http://uk.maven.org.maven2</url>
</mirror>
-->
<!-- 使用国内的镜像 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
这样基本的配置就完成了,关于更多内容在下一篇文章中引入;
4)使用命令新建与发布Web工程
进入我们想要新建工程的目录,这里是E:\JavaWeb\eclipse-neon\workspace
mvn archetype:generate -DgroupId=ecnu.liuning -DartifactId=springmvc-study -DarchetypeArtifactId=maven-archetype-webapp
中间有提示信息,点回车即可,如果出现错误,很大一部分原因是因为镜像配置错误,没法下载依赖包,搜索错误内容查找解决方案。
如果最后提示BUILD SUCCESS证明新建成功;
这跟用eclipse新建是一样的,可以用eclipse导入测试,如果导入eclipse之后出现下面的错误:
是因为没有添加Tomcat Server的运行环境:右键点击工程,选择config buildpath然后按照下图选择;添加完之后,修改一下文件内容再保存,让他重新加载一下。
在命令行切换到springmvc-study 目录,执行:
mvn package
构建成功后,springmvc-study 目录下多了一个target目录,在这个目录下会打包成my-web-app.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了
2、Eclipse中新建Maven Web项目
上面介绍了,使用命令来新建Maven Web工程,可以看到一个标准的Web工程如下:
my-web-app是工程名:
如果是从myeclipse转过来的开发者,可能不太适应,但是这没有关系,代码组织的一种形式;真正发布到Tomcat上之后跟使用Myeclipse新建的WebRoot发布是一样的效果:
要想在eclipse中新建Maven项目,首先需要几个基本的配置:
1)设置我们自己安装的Maven路径
两个地方,Installations和User settings,User settings里面配置我们.m2下面的settings.xml文件,以及本地仓库地址,默认就是在C盘用户目录下:
2)新建项目
网上好多教程;照着来就可以了,但是需要注意几点:
(1)新建的时候选择:
(2)右键项目-->属性,在这里可以修改几个地方;
Runtimes选中,然后Java版本改为1.8的版本,Dynamic Web Module可以去掉,点击apply;然后再勾上Dynamic Web Module这时候改为3.0,就会出现进一步配置的蓝色连接,点进去,修改里面Content directory为src/main/webapp,并将Generate...勾选,单击OK。
(3)右键项目-->Build Path-->Config Build Path
可以把缺失的文件夹给加上
3)配置项目
点开pom.xml文件添加基本的servlet与junit依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
点开web.xml文件,由于此文件是自动生成的,没有头部;可以现搜最新的模板使用,也可以用下面的:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Demo</display-name>
</web-app>
4)下面配置插件用以发布Maven项目
首先在pom.xml文件中加入下面的代码:build标签与dependencies并行,打一个<点击alt+/会有标签提示。
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- 注意此处的url,修改成tomcat监听的端口即可 -->
<url>http://localhost:8080/manager/text</url>
<server>tomcat7</server> <!-- 此处的名字必须和setting.xml中配置的ID一致-->
<path>/${project.artifactId}</path> <!-- 此处的名字是项目发布的工程名-->
<server>tomcat7</server>
<username>admin</username>
<password>password</password>
</configuration>
</plugin>
</plugins>
</build>
配置Tomcat
编辑Tomcat目录下/conf/tomcat-users.xml 在<tomcat-users></tomcat-users>标签中加入以下代码后,保存退出
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
如果出错:
可尝试将将Eclipse中jre改一下
window--Preferences--java--Installed JREs,选择jdk目录下的jre后点OK即可。
如果报未授权的错误,可能是两个地方的配置用户名密码不对应:user
最后访问:
3、总结
在接触Maven之前总是抵触,总钟情于手工导包的方式,其实还是自己遇到错误总是躲避,静不下心来去处理;网上的好些教程千篇一律,但是就是版本不一样,侧重点不同,会导致解决不了我们的问题;总之就是静下心来寻找解决方案。
1)配置maven时mirror要配置正确,不然会报各种插件找不到的错误。
2)使用eclipse时主要就是Properties里面和config build path里面进行配置。
3)配置插件是密码要对应起来。
总结一下解决问题要注意的地方:
1)要回搜,两方面搜索,其一搜你这个问题怎么解决,其二搜日志错误信息,搜的内容质量也良莠不齐,要学会选择!
2)平时多看博客论坛,多帮助别人解决问题,积累相关的技术圈,问题解决圈,等到真正发生bug时能够快速定位问题所在!
3)要了解不同的IDE,这个出问题,可以换另一个;
工欲善其事必先利其器,开发环境是很有必要熟悉的!
4、参考文献
http://www.linuxidc.com/Linux/2017-05/143308.htm
Maven官网:http://maven.apache.org/
Maven入门1-在Eclipse中新建Maven Web项目的更多相关文章
- Maven入门系列(一):Eclipse中使用Maven
Maven下载和安装 在使用Maven之前首先先要下载Mavne的免安装包,下载地址:http://maven.apache.org/download.cgi 想看源码的可以下载src版本,使用的下载 ...
- Java web项目搭建系列之一 Eclipse中新建Maven项目
前提条件: 已经安装好JDK 已经安装好Maven 已经安装好Eclipse 已经安装好Maven插件 在Eclipse中新建Maven项目 [File]→[New]→[Other...] [Mave ...
- (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...
- 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法
title: 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法 tags: grammar_cjkRuby: true --- 右键单击项目,properties-- ...
- eclipse中新建maven项目-转
http://huxiaoheihei.iteye.com/blog/1766986 博客分类: maven maven maven是个项目管理工具,集各种功能于一身,下面介绍maven web项目 ...
- (3)Maven快速入门_3在Eclipse中创建Maven项目打包成jar
Eclipse中创建Maven项目 new ---> maven project ----> next 如下 普通java项目 选择 如下 quickstart 创建项目 : 输入 G ...
- 【MAVEN】如何在Eclipse中创建MAVEN项目
目录结构: contents structure [+] 1,Maven简介 2,Maven安装 2.1,下载Maven 2.2,配置环境变量 2.3,测试 3,Maven仓库 3.1,Maven仓库 ...
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示:
- 转】Maven学习总结(七)——eclipse中使用Maven创建Web项目
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4054814.html 感谢! 一.创建Web项目 1.1 选择建立Maven Project 选择File -& ...
- 在Eclipse中新建Maven项目
关于Maven的好的资料: Apache官网:http://maven.apache.org/ Apache Maven 入门篇 ( 上 ):http://www.oracle.com/technet ...
随机推荐
- Updates were rejected because the remote contains work that you do
每次建立新的仓库,提交的时总会出现这样的错误,真是头疼,...... 直接开始正题,git 提交的步骤: 1. git init //初始化仓库 2. git add .(文件name) //添加文件 ...
- DOM详解
浏览器工作的基本流程 1.浏览器开始解析html文档,构建DOM树(DOM tree),DOM树的节点由文档的标签.属性.文本等组成:2.解析外部CSS文件及style标签中的样式信息,这些样式信息将 ...
- 模板C++ 03图论算法 2最短路之全源最短路(Floyd)
3.2最短路之全源最短路(Floyd) 这个算法用于求所有点对的最短距离.比调用n次SPFA的优点在于代码简单,时间复杂度为O(n^3).[无法计算含有负环的图] 依次扫描每一点(k),并以该点作为中 ...
- linux 系统备份日志
题目: 备份日志 小明是一个服务器管理员,他需要每天备份论坛数据(这里我们用日志替代),备份当天的日志并删除之前的日志.而且备份之后文件名是年-月-日的格式.alternatives.log在/var ...
- 如何修改"DEDECMS 提示信息!"方法!
dedecms程序使用过程中,经常有一些跳转提示信息会出现“DEDECMS 提示信息!”这几个字样. 很多朋友都想对他进行修改,改为自己网站的提示信息,其实方法也是很简单的,方法如下: 用编辑器打开i ...
- Vue 爬坑之路(二)—— 组件之间的数据传递
Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...
- [codeforces631E]Product Sum
E. Product Sum time limit per test: 1 second memory limit per test: 256 megabytes input:standard inp ...
- vue-router如何根据不同的用户给不同的权限
闲聊: 小颖去年在上家公司用的vue1.0之前在做路由这块用的router.map,但是现在vue2.0里已经不能用了,所以之前解决权限问题的例子,小颖也参考不了呜呜 之前看一个美女写的:elemem ...
- php 数据连接 基础
1.造连接对象 $db= new MYSQLi("localhost","root","123","test_0306" ...
- JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...