maven项目管理工具(maven管理项目有什么好处)-ag凯发k8国际

maven全称是apache maven project–apache的优秀开源项目,maven是java项目的构建和管理工具。maven这个词翻译为“专家”或者“内行”,是跨平台的项目管理工具。maven主要服务于java平台的项目构建,依赖管理,项目信息管理等。

接下来是项目构建的过程,通常项目构建的过程分为这六个步骤:

理想的项目构建是高度自动化、跨平台,可重用、的组件,使用maven就可以帮助我们完成上述项目构建的完整过程。

再有就是依赖管理。所谓的依赖管理其实就是使用maven来管理项目中所使用到的jar包,maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。

注意maven的使用依赖于java,因此需要提前安装java。

maven的安装

maven的用途很大,这里简单说一下:
1、用maven可以方便的创建项目,基于archetype可以创建多种类型的java项目;
2、maven仓库对jar包(artifact)进行统一管理,避免jar文件的重复拷贝和版本冲突;
3、团队开发,maven管理项目的release(正式版本)和snapshot(开发版本)版本,方便多模块(module)项目的各个模块之间的快速集成

点击这里使用镜像下载maven:maven下载

选择所需要的的版本后,接着选择binaries这个文件夹,再选择以.zip结尾的文件就可以了,然后进行下载,解压。接下来介绍maven解压后的目录结构,如下图所示:

bin:含有mvn运行的脚本;
boot:含有plexus-classwords类加载器框架;
conf:含有setting.xml配置文件;
lib:含有maven运行时所需要的java类库;
后面的3个txt文件主要针对maven版本,第三方软件进行简单介绍。

接下来进行maven环境变量的配置:我的电脑–>属性–>高级系统设置–>环境变量–>系统变量–>新建:变量名:m2_home;变量值:g:applicationmavenapache-maven-3.6.0(也就是maven解压后的目录),接着找到path在环境变量值尾部加入;%m2_home%bin; 注意前面的分号 !

最后检查maven是否安装成功: 打开dos窗口运行命令mvn -version,出现如下图所示的信息说明安装成功:

修改maven本地仓库位置

通常maven会将下载的类库(jar包)放置到本地的一个目录下(默认情况是c:我的文档中.m2.repository),如果想重新定义这个目录就需要修改maven本地仓库的配置,这个过程也很简单,只需要四步:

第一步:在自己指定的位置处创建一个文件夹repo(名称随意),本人创建的位置是:g:applicationmavenrepo;
第二步:在maven文件夹下找到conf文件夹,并找到其中的settings.xml文件,然后复制settings.xml文件放于g:applicationmaven,其实就是直接放在与你新建的repo文件夹同一目录:

第三步:修改这个settings.xml及前面conf文件里的settings.xml(也就是两个settings.xml文件),找到55行,修改maven默认的仓库位置,如下图所示:

第四步:测试效果,打开dos窗口运行命令mvn help:system,出现如下图所示的信息说明配置成功(这个过程需要一定时间):

接下来介绍maven项目的目录结构:

创建一个maven项目

此处使用idea创建一个maven项目,先在idea里面进行maven的配置:

点击上面的新建图片的ag凯发k8国际首页,点击configure–>settings:

注意这里maven的解压路径,还有如果你的maven是默认安装,那么使用默认配置即可。由于我在前面修改了maven的配置,因此那个maven home directory就需要设置为maven的解压路径。注意一下这里的user settings file,你可以使用conf目录下的settings.xml,也可以使用repo同级下的settings.xml。最后的loacl resposity设置为你repo文件所在路径即可。按照图上所示进行配置,然后单击ok就好。

接下来正式开始创建一个maven空白项目:

然后一直next就可以了,然后系统会自动创建项目。(groupid是项目名称,artifactid是项目中某一模块的名称,version是版本号)创建完成如图所示:(第一次使用maven可能会花一点时间,因为maven的中央仓库里面还没有文件,你需要去下载)

如果在此过程中出现c:/users/administor/appdata/local/temp/archetype,请参考这篇文章:解决办法

打开里的pom.xml文件,它的作用就是配置一些jar包的引用地址:

4.0.0 com mavendemo 1.0-snapshot war mavendemo maven webapp http://www.example.com build.sourceencoding>utf-8 1.7 1.7 junit junit 4.11 test mavendemo maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2

这里面有很多,目前先关注这个:

junit junit 4.11 test

这个就是jar包的依赖配置,这里是配置了junit这个jar包,关于包的查找可以点这里:maven官方仓库,你需要什么就去这个网站进行搜索,然后复制dependency标签即可。groupid是仓库中生成包的路径,artifactid当前存放包的最终一个目录,version就是版本号。

下面是一些常用的maven命令:
清除命令:mvn clean(删除target,不会删除本地仓库)


编译命令: mvn compile


编译、运行、发布命令:mvn install


编译、运行、不负责发布命令:mvn package


编译、如果test包下有java代码也会编译和运行,但也一样不会发布到本地仓库:mvn test


跳过单元测试:mvn clean package -dmaven.test.skip=true


mvn package与mvn install的区别:主要区别就是package命令不会将target内容发布到本地仓库。(因此建议一般使用mvn install)

但是我们一般不会直接去使用这些命令,因为idea里面已经集成了这些命令。点击idea右侧的maven projects:

lifecycle是maven项目的生命周期,而plugins则是针对第三方依赖包的管理。详细参看这篇文章:maven lifecycle 与 plugin

clean:用于清除之前构建生成的所有文件,其中具体为清除target目录中的所有文件,包括该目录。
validate:用于验证项目是否真确,并且其说有必要信息是否都可用。
compile:编译项目的源代码,主要是java文件,一般是编译scr/main/java或是scr/test/java里面的文件。
test:用合适的测试框架来进行测试,测试compile中编译出来的代码,测试的东西一般不加包和部署。
package:获取compile中编译好的代码并将其打包成可分类的格式,如jar。
vertify:这步是用来验证test,检查test的结果是否满足标准。
install:将软件包安装到本地存储库中,确保本地其他项目可能需要使用它,也就是说某个项目被打包成jar包,必须先install才能被引入使用。(例如,装了core才能用oms)。
一般都是先clean,后complie,再package,接着install,最后deploy。

演示编译

接下来演示如何将一个项目打包为jar,在前面的app同级目录新建一个util包,在里面新建一个stringutil.java文件:

public class stringutil { /** * 判断字符串为空,空则返回true,反之则返回false * **/ public static boolean isempty(string string){ return null==string || "".equals(string); } /** * 判断字符串是不为空,空则返回false,反之则返回true * **/ public static boolean isnotempty(string string){ return !isempty(string); }}

注意此处仅仅是演示,所以不再新增其他的业务逻辑。然后点击右侧的maven projects,按照顺序依次运行相应命令:

然后你会发现项目结构发生了变化,左侧多了一个target文件及一个demo.jar包:

接下来新建一个web项目,然后引入刚才的jar:

然后一直next就可以了,然后系统会自动创建项目,创建完成如图所示:(第一次使用maven可能会花一点时间,因为maven的中央仓库里面还没有文件,你需要去下载)

然后配置tomcat访问(注意使用war exploded,具体可参考idea中的war和war exploded的区别,说白了war是打包启动,war xxx是热启动。通俗点就是当你资源发生修改时,后者可以跟着重新启动修改,而前者需要手动启动)。

接下来便是项目文件和测试文件目录的创建:在 main 文件下面创建一个java文件夹 ,然后按照如下操作:光标移到java文件夹上面,然后右键拉到底部,找到make directory as ,再单击出现的sources root即可,会发现该文件变成了蓝色。

紧接着在src文件下,创建mian文件的测试文件夹,名称为test,然后再在test文件夹下面新建java文件夹 ,然后按照如下操作:光标移到java文件夹上面,然后右键拉到底部,找到make directory as ,再单击出现的test sources root即可,会发现该文件变成了绿色。

接下来开始引入jar包,打开之前那个mavendemo项目的pom.xml文件,找到关于这个项目的描述信息:

com.test.app demo 1.0-snapshot

也就是这个:

然后回到helloweb项目,打开它的pom.xml文件,找到标签,新建一个标签,将之前那三行代码放进去,然后你会发现maven会自动导入这个文件:

你可以尝试将前面那个标签删除,发现这jar包又没了。

然后在mian文件下的java包中新建一个test.java,来尝试测试一下:

public class test { public static void main(string[] args){ string a = ""; system.out.println(stringutil.isempty(a)); }}

运行结果:true。说明测试通过,我们成功的引入了jar包。

如何引入本地的jar包

前面修改过maven的本地仓库地址为:g:applicationmavenrepo,因此请注意你所有在pom.xml文件中配置的依赖其实已经下载到了这个文件夹下面,例如里面的的junit的配置:

junit junit 4.11 test

因此通过这个可以推断出这个juint文件的位置为:g:applicationmavenrepo junitjunit4.11,不信的话去看一下本地的目录结构:

确实如此,所以当你知道某个文件在哪里,那么你也可以配置依赖。

按照这种方式配置servlet的依赖:g:applicationmavenrepojavaxservletservlet-api2.5,那么您在pom.xml中的依赖配置为:

javax.servlet servlet-api 2.5

注意到没,我们在中导入的是javax.servlet而不是javax,因为那样可以避免依赖层级过多,降低可读性。

登录系统演示

接下来通过servlet来编写一个登录系统,这样能体验完整的maven功能。
在java包下面新建一个com.test.servlet包,接着新建一个loginservlet.java文件,让它继承httpservlet类,并重写doget和dopost方法(忽略导包代码)

public class loginservlet extends httpservlet { @override protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { this.dopost(request,response); } @override protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { //设置页码的字符编码集 request.setcharacterencoding("utf-8"); response.setcharacterencoding("utf-8"); //获取用户提交信息 string username = request.getparameter("username"); string password = request.getparameter("password"); if(stringutil.isnotempty(username) && stringutil.isnotempty(password)){ request.getrequestdispatcher("/success.jsp").forward(request,response); }else{ request.getrequestdispatcher("/fail.jsp").forward(request,response); } }}

然后去web.xml文件中配置访问路由:

loginservlet com.test.servlet.loginservlet loginservlet /loginservlet

接着修改index.jsp页面信息为:

<%@ page contenttype="text/html;charset=utf-8" language="java" pageencoding="utf-8" %> 用户登录

登录

继续新建一个fail.jsp页面,里面的代码为:

<%@ page contenttype="text/html;charset=utf-8" language="java" %> 失败

对不起,登录失败!

同样也需要新建一个success.jsp页面,里面的代码为:

<%@ page contenttype="text/html;charset=utf-8" language="java" %> 登录成功

恭喜,登录成功!

然后运行项目,在浏览器地址栏中输入地址:http://localhost:8080/,发现项目测试通过。

ag凯发k8国际的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年12月16日 上午8:30
下一篇 2023年12月16日 上午8:42

相关推荐

  • 内推应该怎么做,才能使员工动起来?(内推员工是什么意思)

    1、做内推,第一点很重要,就是文化。 我所在的这个公司中,在员工的三大职责里,明确写到“宣传公司的品牌、销售公司的产品、引荐优秀的人 才” 2、文化是指引,员工行为的引导,更重要的…

    科研百科 2024年2月6日
    77
  • 6月27日,在举国欢庆建党103华诞热潮中,丹凤县流岭国有林场为强化林区安全生产管理,发挥党建护航,典型引领的积极作用,召开党建引领强管护,生态康养促文旅“庆七一,忆初心,感党恩”…

    科研百科 2024年7月5日
    44
  • 2016年10月,习近平总书记在全国国有企业党的建设工作会议上,对国有企业坚持党的领导、加强党的建设做出重大部署,在国企改革发展史上具有划时代和里程碑的意义。习近平总书记的重要讲话…

    科研百科 2023年1月3日
    647
  • 客户关系管理系统的分类 客户关系管理系统是一种用于管理客户关系的软件系统,能够帮助企业更好地维护客户关系,提高客户满意度和忠诚度。客户关系管理系统的分类可以根据其功能、特点和应用场…

    科研百科 2024年6月5日
    67
  • 本报记者 陈溢波 吴可仲 北京报道 从近期日本娱乐业巨头万代南梦宫设立独立游戏工作室,再追溯到此前腾讯向“天才梁其伟”旗下的灵游坊投入数亿元战略投资、《黑神话:悟空》实机演示片段的…

    科研百科 2023年5月24日
    265
  • 无论你在寻找什么工具,都有大量的开源软件的替代品供你选择。

    2022年6月9日
    366
  •   近日, 中国畜牧业协会在全国畜牧行业开展了 “2015年度中国畜牧行业优秀创新模式推介” 活动,经专家评审委员会综合评议, 全国34家单位优秀创新模式通…

    科研百科 2022年5月30日
    325
  • 中新网 10月28日电 中铁十七局四公司承建四川省成都市青白江区临港服务产业园项目,总建筑面积43.64万平方米,包括11栋商业楼及13条市政道路等基础设施建设。上场以来,项目贯彻…

    科研百科 2022年12月9日
    235
  • 协同办公行业报告:2022年市场规模和趋势 随着数字化时代的到来,协同办公行业逐渐成为一个越来越重要的领域。在过去的几年里,协同办公行业经历了快速的发展,吸引了越来越多的企业和个人…

    科研百科 3天前
    12
  • 11月16日下午,裕安区城管局机关党委组织开展党务培训,机关党委委员、各党支部书记参加培训会。 会上集中学习了党的二十大报告和党章修正案等相关内容,安排近期重点工作,传达了主题党日…

    科研百科 2023年2月15日
    239
网站地图