eclipse下maven使用及tomcat调试manven程序

maven的优势就不赘述了,依赖包管理、程序调试这是编程不可回避的两个步骤,初次使用还是碰到了一些问题,这里记录一下。

1. maven使用

安装部署maven

1. 从http://maven.apache.org/download.html下载最新的maven,解压到指定目录。

 

2. 修改M2_HOME/conf/下的settings.xml文件,添加如下内容,设置本地仓库目录

<localRepository>D:\work\packages\m2\repository</localRepository>

 

3. 设置环境变量(如下是我配置的示例):

M2_HOME

D:\work\apache-maven-3.3.9

MAVEN_OPTS

-Xms128m -Xmx512m

PATH(原有基础上添加如下内容)

%M2_HOME%\bin;D:\work\packages\m2\repository;

 

另外maven 2仓库在硬盘中的存储位置windows默认是C:\Users\机器名\.m2\repository,这里手动设置便于管理,用户变量中添加

M2_REPO

D:\work\packages\m2\repository 

4. 控制台中执行mvn –v测试是否配置成功

 

 

2. eclipse新版本的eclipse已经集成了maven,我用的是neon版本,需要简单的配置就可以

 

 

3. 创建Maven工程后就可以进行maven的相关操作,依赖包由pom.xml负责

maven build 设置参数为compile,则编译工程;

maven install 打包工程为war包,可以直接部署;

其他基本的操作网络上很容易获取到。

 

4.记录的重点,调试;

有两种办法,第一种比较简单的直接依靠eclipse管理;但是与我之前的习惯处理方式有差异,就想能不能还是自己设定发布的目录,所以就有第二种方式了,不过这种方式有些人可能会感觉是多此一举了,个人见解吧;

(声明:工程我在网上找的要解决另一个问题的一个样例工程)

 

开始说第一种方式:

a. 添加依赖包发布,不然编译后的目录无Lib

 

b. eclipse添加tomcat Server

 

c. 选择tomcat版本

 

d. 顺便直接把工程添加进去

 

e. 添加完成后再eclipse Server选项卡中双击创建的Server,修改发布的路径为Tomcat的安装路径,否则会自动部署到Eclipse的管理目录下,同时记得要修改Deploy path为webapp

 

f. 完成后再Tomcat的目录下就可以看到工程了,启动Tomcat,访问正常,断点调试OK;

 

g. 如果没有修改部署目录,默认会发布到eclipse的服务目录,类似如下

当然,相关的路径在配置中是可以看到的,如下图

 

 

第二种方式:通过映射的方式,直接用工程的目录

 

这样就不需要在Tomcat的安装目录下重复发布工程了,同时也可以避免直接修改文件时混淆(以前犯过这种错误。。。)

a. 查看maven项目src下 webapp的目录

b. 复制路径到eclipse添加的tomcat的配置文件server.xml中,最终如下:

<Context docBase=”D:/work/workspace/struts2-rest2/src/main/webapp” path=”/demo” reloadable=”true”/>

</Host>

 

c. 普通的Web项目到这里就可以启动正常访问了,但是maven项目有问题,如下的两个目录是不存在的,因为源码编译时目标目录是target\classes,lib是maven管理,编译根本不会生成到编译的目录

 

d. 所以用了目录映射的方式:

C:\Users\Administrator>mklink /J D:\work\workspace\struts2-rest2\src\main\webapp\WEB-INF\classes D:\work\workspace\struts2-rest2\target\classes

这样就可以直接看到target目录下编译后的文件了;

 

e. 但是还有个问题lib呢,这个文件本来就不存在啊!!!通过打包,也就是也就是工程右键–>run as –>maven install,在target目录下生成的文件中有编译后的整个工程目录结构,从这里可以找到lib,由于lib确定了一般变动少,所以用这个目录不会有什么问题的;

映射如下图:

 

f. 到这里就可以直接启动tomcat访问并调试了;

 

写到这里自己都感觉第二种方法有点麻烦了,直接用第一种方式多简单的;如果没有强迫症就不要折腾了吧。。。

 

发表评论

邮箱地址不会被公开。 必填项已用*标注

昵称 *