Maven
内容管理- 在IDE工具中使用Maven
- IDEA配置Maven
- IDEA中创建项目
- Eclipse中配置Maven
- Eclipse创建web项目
- 设置依赖后爆红
- 导入module
- 依赖范围
- maven的属性设置
- 全局变量
- 资源插件
Javaweb — emmm…快快的,马上进框架了,都是工具,害
Maven
在IDE工具中使用Maven IDEA配置MavenMaven作为构建项目的辅助工具,其发挥的作用是巨大的,特别是依赖管理和项目构建非常强大,但是技术加上工具也许会实现另外一种腾飞,就像IDE工具 + Tomcat
在IDEA工具中内置了很多工具,但是一般为了方便修改,不用内置的工具,而是使用安装的工具,这样就不会出现工具的局限,其他的工具比如eclipse也可以使用;所以需要在IDEA中去覆盖默认配置。
- 首先需要设置的地方是File目录下的settings【代表当前工程】和other settrings【代表以后的工程】 ---- 修改的方式相同
找到settings中的build、Excution、Deployment----> build Tools---->maven —> maven home directory : maven安装目录 ; User settings File : maven安装目录中的conf/setting.xml文件 Local Repostory: 本机仓库的目录位置
- 然后将几个位置进行修改 : 为了更加快捷运行maven,在maven下的runner位置设置VM options : -DarchetypeCatalog=internal
这样配置就算完成了
IDEA中创建项目创建空项目之后,然后添加module;这个时候选择maven;复选框就是是否使用archetype;也就是使用模板创建项目
1).maven-archetype-quickstart: 普通的java项目
这个时候点击next,会出现Parent,这里没有父项目,不用管,命名之后进入后面设置项目的坐标
可以看到下面创建项目成功【这个模板默认是没有resources文件夹】
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:RELEASE [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: Cfeng [INFO] Parameter: artifactId, Value: maventest [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: Cfeng [INFO] Parameter: packageInPathFormat, Value: Cfeng [INFO] Parameter: package, Value: Cfeng [INFO] Parameter: groupId, Value: Cfeng [INFO] Parameter: artifactId, Value: maventest [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Project created from Archetype in dir: C:UsersOMEY-PCAppDataLocalTemparchetypetmpmaventest [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS
注意,建立项目的时候,普通的文件夹是不能创建java classes的,要sources 蓝色的文件夹才可以,所以需要将防止java类的包设置为source类型
也就是主程序的java文件夹应该为蓝色的,测试程序的java文件夹为绿色的,资源文件则要设置为资源文件类型
package Cfeng; public class HelloMaven { public int add(int n1,int n2){ return n1 + n2; } public static void main(String[] args) { HelloMaven hello = new HelloMaven(); int res = hello.add(10,20); System.out.println("result =" + res); } } //简单写一下这个主程序,这个时候在写一个test程序
2).maven-archetype-webapp: java web项目
这里直接new module ,选择maven的模板,创键java web项目
这里感觉2019.1.3不是很好用,就卸载重装了2019.3;安装的过程还是很简单,就来一个插件即可;
javax.servlet javax.servlet-api4.0.1 provided javax.servlet.jsp jsp-api2.1 provided
之后创建相应的文件夹,在main的java文件夹下面创建cfeng.controller包,新建一个servlet;这里就不在web.xml中配置,直接使用webservlet注解
package cfeng.controller; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/hello") public class HelloServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("你好"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("你好"); } }
然后就简单在index.jsp中写一个超链接
Hello World! Welcome
再将项目部署到Tomcat就可以正常运行了
Eclipse中配置MavenEclipse之前忘记配置JDK的路径,导致用了半年的默认的下载的JDK,全部在C盘的当前用户的.p2文件夹中;所以以后下载的时候除了要看最开始的安装路径,还要记得修改conf中的配置xml
-
首先就是将本地的maven配置到软件中,在window-----> Perferences下面选择Maven;选择installations;点击Add,选择安装的路径,之后apply即可
-
【配置仓库和设置】选择User settings ,设置几个值,和IDEA相同,都是直接配置即可
在其下的archType中,已经选择了interna,所以就不用修改
Eclipse创建web项目这里选择的时候就直接创建Maven project;这样之后创建普通的项目就直接jar包选择即可;但是对于web项目,首先要选择war包;创建之后会报错
- 这个时候首先点击项目,选择build Path — configuration ----> 选择java factor —> 取消勾选dynamic【动态】 apply之后,再次勾选
勾选时出现问题【eclipse选择maven的时候显示requires java 1.8 or newer】?
这个时候可以用navigator视角观察项目的classpath的settings,发现其默认的jdk版本是1.5 ;所以这里需要修改,第一种就是在该项目的pom.xml中添加一个jdk版本设置
16 16
但是这样子每次都需要修改,所以可以直接修改Maven的配置文件settings
jdk-16 true16 16 16 16
这个是在标签profiles下面;修改之后要记得点击项目的Maven,选择Update; 然后就会刷新,或者直接重启Eclipse也行
- 之后勾选上之后可以点击下面的超链接设置contentPath;然后就成功创建了项目
这里可能是IDEA还没有立刻引入依赖,这里可以通过
右键pom.xml----> 选择Maven---> Reimport
这样就可以刷新,重新导入,解决依赖不识别的问题
导入module点击右上角的图标【project structure】 ,进入之后点击module,点击 + 号,就可以导入一个磁盘中的maven项目;选择import,选择maven,JDK选择电脑上的JDK,finish就可
依赖范围junit junit4.11 test
使用scope表示的,scope的值有compile,test,provided ; scope表示的是依赖使用的范围;在maven构建项目的哪些阶段起作用
maven构建项目的过程有清理、编译、测试、打包、安装、部署等阶段
- test : 说明这些代码只是在测试阶段起作用 【也就是在代码的编译的时候是不会用到junit的】
- compile: 说明这些代码在整个过程中都会用到【全部生命周期,默认】,包括打包和部署
- provide: 提供者;这些代码只是在前面的几个阶段,就是编译和测试的时候使用,但是在打包和安装部署不需要,比如servlet、jsp等jar包在tomcat中都提供了的
所以以后使用框架等,直接就使用maven工具加载依赖就可以了,就不需要像之前下各种文件
maven的属性设置就是pom.xml中的properties标签中设置属性
- project.build.sourceEncoding : maven构建项目使用的编码,避免中文乱码
- maven.compiler.source : 编译代码使用的JDK版本
- maven.compiler.target : 运行程序使用的jdk版本
自定义的属性 : 在properties中通过自定义标签声明变量【标签名就是变量名】
在pom.xml中的其他位置就可以使用${标签名} 使用整个变量【和jsp的el的简化格式同】
5.2.1 ${spring.version}
为什么要使用?
如果项目要使用多个相同的版本号,就可以先自定义全局变量,之后就可以使用${}来运用这个版本号;比如Spring框架中就有很多的插件【所以就使用一个全局变量来设置版本号】便于统一管理
这个资源插件和其他的插件相同,都是在build标签中
src/main/java 冒泡排序代码示例上一篇 2022-12-17SSM框架之Mybatis学习笔记2下一篇 2022-12-17
评论列表(0条)