eclipse使用maven搭建项目总结

来源:互联网 发布:武汉java培训 编辑:程序博客网 时间:2024/06/06 01:09
1、maven官网下载maven,解压到本地
2、配置环境变量 :
M2_HOME=E:\Software\mysql-5.6.36-winx64, path=***;%M2_HOME%\bin
3、修改本地仓库地址:
本地创建repo文件夹,maven安装目录下找到setting.xml文件  找到localRepository标签:修改为**\**\repo
4、cmd控制台操作maven项目:
创建Java项目,进入项目所在目录,输入下面命令:
mvn archetype:generate -DgroupId=org.angei -DartifactId=angei -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
说明:这告诉 Maven 来从 maven-archetype-quickstart 模板创建 Java 项目。如果忽视 archetypeArtifactId 选项,一个巨大的 Maven 模板列表将列出。


创建java web项目,进入项目所在目录,输入下面命令:
mvn archetype:generate -DgroupId=org.angei -DartifactId=angei -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
说明:自动下载更新相关资源和配置信息(需要等待一段时间),并产生 Eclipse IDE所要求的所有项目文件
-Dwtpversion=2.0 告诉 Maven 将项目转换到 Eclipse 的 Web 项目(WAR),而不是默认的Java项目(JAR)
mvn eclipse:eclipse -Dwtpversion=2.0


5、eclipse自带的maven插件创建Java Wed项目:我这里用的eclipse4.6.2版本,3.0版本及以下的要自己下载安装maven插件

a)eclipse配置本地maven Windows-->Preferences-->Maven-->installations-->add-->找到maven本地安装路径
-->user setting--设置为本地setting.xml文件所在路径
b)右击 new-->maven project-->next-->选择artifact id为maven-archetype-webapp 点击next-->输入groupID:公司网址倒写+项目名称 artifactID:项目名/模块名 点击finish。

c)项目完成后发现index.jsp报错,这是因为servlet的jar包没导进来。在pom.xml中配置servlet的依赖坐标,如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope> 
</dependency>
说明:这个依赖可在maven的中央仓库中查到 仓库地址:http://mvnrepository.com/ -->输入servlet 查找--> Java Servlet API-->
-->选择版本(我这里选择3.1.0)-->找到依赖坐标复制
注意:scope表示作用范围 默认为:compile 这里的scope要指定为provided 不然启动服务的时候 会和tomcat中的servlet-api包发生了冲突 后台会报错
d)pom.xml 配置Tomcat插件
<build>
<finalName>项目名称</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
说明:Tomcat插件可以在Tomcat官网上查找 打开官网地址http://tomcat.apache.org/-->点击maven plugin--选择版本-->复制插件坐标
e)确认项目为web项目
右击项目--->properites-->project facets-->确认勾选了Dynamic Web Module
f)运行项目
在pom.xml中右击run as -->maven build..-->goals:tomcat:run-->点击run
g)项目打包
右击项目--->properites-->Deployment Assembly -->remove不需要发布项
6、scope说明:
compile
默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。

test
scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。

runntime
runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。比较常见的如JSR×××的实现,对应的API jar是compile的,具体实现是runtime的,compile只需要知道接口就足够了。Oracle jdbc驱动架包就是一个很好的例子,一般scope为runntime。另外runntime的依赖通常和optional搭配使用,optional为true。我可以用A实现,也可以用B实现。

provided
provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。

system
从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合
原创粉丝点击