-Java- Maven命令

1.Maven的开发流程

Maven的创建工程一般在工具中执行,可以进行创建工程的工具非常多,如ecplise。 怎么用maven开发? 一般在工具上创建一个工程就开始写代码,把所有的东西都写在一个工程里面,这样好吗?我们用maven该怎么开发呢? 在一个工程里写所有的东西,所以的东西集合在一处,不方便升级、不方便修改、不方便扩展、复用。而maven提倡的是模块化编程了,我们做模块化编程就不应该把【学Java,到凯哥学堂kaige123.com】所有的东西写在一个工程里面了。 Maven里面的建议->模块化编程,一个项目拆开为很多个模块、多个子工程、方便以后的维护和复用。如果所有写在一个工程里面,某个地方出错了,就要拿整个工程出来修改或扩展,这样错误一多的时候,会老是要去修改这整个工程,会很乱。如果我们用maven呢?把一个工程划分为多个子模块、子工程、以后如果某个功能或子工程需要修改,只要单单修改对应的子模块和子工程就行了,其他没有错误的就不用动,这样比较方便。 就像汽车一样,不是由一个公司来完成整车制造,而是把它拆分为很多模块,把各个模块分给对应模块最厉害的公司去做,然后把所有模块整合起来就是一辆很棒的汽车了。 乐高、模块化手机等东西都是用到了把一个项目划分为多个模块的理念思想的。 银行作业模块化开发演示: 比如,我们的银行开发分为三个模块分别是:1.bank-id、bank-banklogic、bank-view,这三个模块,我们可以建三个maven工程,然后因为bank-banklogic里面需要依赖与bank-id模块,我们则把bank-id依赖进bank-banklogic里面去。还有我们的bank-view模块需要依赖bank-id和bank-banklogic模块,所以我们就应该把两个模块都依赖进去,如下:

以上就是一个项目使用maven工程的大致流程。 上面的项目分成了三个模块、三个工程、虽然做到了模块化编程,但是我们希望我们能有一个工程专门用来对项目的所有模块进行统一管理、统一编译等操作,我们该如何?以后还可以统一测试、统一运行,这种统一方式就是聚合。 按照maven的意思就是要建立一个文件夹,将代表三个不同子工程的文件夹放到里面去,然后在管理工程目录下建一个pom.xml文件来设置对三个子工程管理的一些配置信息,如下:

我们要建立的文件结构就如上图所示一个bank-system文件夹下有三个子工程文件夹和一个pom.xml文件,其中pom.xml文件用来对三大子工程模块进行管理。 聚合就是将子工程模块统一管理、统一编译、统一测试、统一运行,这就是聚合的中心。 怎么用ecplise来建立统一管理的工程呢?

同样是建立一个maven工程,在选packing的时候选pom,然后在pom.xml文件中进行聚合设置,如:

用到modules和module,来把三个子工程变为需要聚合工程来统一管理,记住要../bank-id这样子写,因为这三个子工程和pom.xml文件不在同一个目录层下,我们把三个子工程用一个工程统一管理后,以后编译就会四个工程一起编译,测试也是一起测试了。 把项目拆分开各个模块来是执行了模块化编程,但是模块分散后确实也不好进行统一编译、统一测试、统一运行,所以才需要聚合来创建一个工程来进行统一管理。 如果只在管理工程的pom.xml文件中设置依赖junit是不会共享到三个子工程里面去的,要想在下面也用到junit,则需要继承了。

要使用继承,就是继承父类maven工程的配置信息,继承之后,就拥有了父类maven工程里面pom.xml文件中设置的所有的东西了,先建一个管理工程students-parent,packing选pom,记住了,一定要选pom,不然可能会出错。 然后我们再建一个maven工程来继承于它:

新建的maven工程的父类工程的地方的环球id、骨架id、版本信息等都要选全:

然后,我们在管理工程的pom.xml文件中依赖进来junit后,students-view由于继承了students-parent,所以会自动有了junit,这就是继承的用处了。 继承就是继承别人的依赖,继承别人的配置,这样就免得了下面的每个子工程都去写依赖,写配置了,这样省去了很多麻烦的操作,把父类maven工程的pom.xml文件的内容进行继承。 有一个问题,只要子工程继承了管理工程,则每个子工程都要有父类里面的依赖了,但是如果我的有一些子工程不想继承管理工程里面的所有依赖怎么办呢?就是我的子工程希望可以选择性的继承管理工程里面的依赖,我们则把强制子工程需要继承的依赖写在<dependencies></dependencies>下,把可以选择性继承的依赖写在<dependencyManagement></dependencyManagement>下:

管理工程的pom.xml文件中的struts依赖写为子工程可以选择性继承的,然后子工程里继承这个可以选择性继承的依赖的时候可以少写一个版本号:

2.Maven的生命周期

所谓的生命周期,说白了也就是编译流程,就是maven工程是如何编译的,从哪里开始编译,从哪块走到哪里等等,这就是生命周期,为了好理解,我们把它看做是maven工程的流程,它包含了这个工程所要走过的所有流程,编译的过程中有哪些任务去完成,就像一个流水线一样、流水线的任务操作。 三个部分:1.清除(clean,有三个步骤)2.默认的(也就是编译)3.网站生成(site) 清除:哪三个步骤?首先是清除前的准备工作,然后是把所有文件删除掉,最后是清除后的尾部收尾工作。三个步骤也就是三个任务,pre-clean、clean、post-clean,每次清除都要执行这三个任务。 默认编译:在编译的过程中总共要执行的任务有:

由上图可知,我们主要比较清楚的任务有:compile、test-compile、test、package、install等,这些和我们上次讲的maven的常用命令刚好是一样的,也就是说如果也执行第15位的test任务,则要把前面的14个任务执行完成之后,才会去执行第15个test任务。 如果要执行deploy,则要把所有任务执行一遍,这就是和流水线一样的,我们要流到下一个岗位,则上一个岗位必须完成,整个编译有很多个任务,流水线生成,写哪个命令就要走不同的流程、执行不同的任务。以后如果觉得需要在编译流程中加入某个任务也是可以的,我们可以使用插件来,在现有的编译流程的任务中插入一些我们需要加入的任务。

如上所示,如果我们进行的安装任务,则在执行到这个任务之前,会先执行打jar包、test、testcompile、testResources、compile等任务,如果我们需要在某个任务之间插入一个任务,可以使用插件来实现。 网站的生成:maven是模块化开发,开发时写组件,写完需要发布,发布就要生成网页,所以有网站生成这个流程,maven可以帮你的组件生成一个介绍的网页,如果你需要就需要执行网站生成的生命周期,如果不需要就不用执行了,一般用不到这个东西。 三个生命周期,每个生命周期有【学Java,到凯哥学堂kaige123.com】很多个任务组成,学习这个我们首先需要了解一下maven的编译这样的流程是怎么完成的,其次我们希望在一个生命周期的某个点上加上一个任务,这个任务我们自己来弄,就要用插件了。 在生命周期的某个点上插入一个插件去,就是相当于插入了一个任务了,我们自带的任务还是不够的。 怎么看maven有多少个任务? 在apache官网中,进入maven页面->plugin页面进去:

我们需要弄一个给源码打包的插件,然后插入编译流程中,让编译过程会给源码打包而不仅仅是打jar包:

我们这里配置了插件有打源码jar包和test源码的jar包两种,配置完后,保存然后run as –>test,得到的结果如右侧所示,就会有源码的jar包和test源码的jar包了。如上图所示的配置方法。 还可以加如一个插件来改变JDK的版本:

先在pom.xml文件中写好配置语句,然后反键工程名->maven->update Mavne Project,然后jdk就会自动变成1.6版本的了。 还可以把插件写到父类maven工程里面去:

上面是父类maven工程的pom.xml文件信息,

下面是子工程的pom.xml信息

在管理工程的pom.xml文件,反键->run as ->test,一测试,就会在子工程下自动打好下面的包。 我们还可以配置在编译的时候先clean 后package,如:

时间: 2024-11-06 03:40:56

-Java- Maven命令的相关文章

Maven—如何使用maven命令创建Java项目或Java Web项目

博客<Maven-Windows操作系统中安装配置Maven环境>介绍了如何在Windows操作系统中安装配置Maven,现总结一下如何借助maven命令创建Java项目或Java Web项目: 1.借助maven命令创建Java项目: 1.借助maven命令创建Java Web项目:

Maven命令与pom文件常量

端碗吹水 Maven命令: Maven不单止可以在Eclipse上使用,也可以在cmd中使用命令的方式操作,虽然这样十分麻烦,而且有一般也不会使用,但是还是得了解一些可能会用到的操作方式. 1.mvn compile命令:此命令用于编译工程,使用此命令在cmd里编译工程代码时,需要先cd进工程目录下,不然会报错. 使用命令编译工程的话,工程文件夹可以[学Java,到凯哥学堂kaige123.com]自己手动创建,这个手动创建的样式和用Eclipse创建的样式差不多,工程文件夹下是main和tes

java maven安装第三方的jar

当项目中需要用到第三方的jar时,通过mvn命令进行安装后使用 window平台下的话 用cmd进入mvn所在的目录 一般情况下到bin文件夹 有个mvn命令 umpay_sign_V40.jar是引用的第三方的包 mvn install:install-file -Dfile=d:\umpay_sign_V40.jar -DgroupId=com.umpay -DartifactId=umpayclient -Dversion=4.1 -Dpackaging=jar -DgeneratePom

Maven 命令格式及一些常用命令

Maven自身指定定义了一套对项目进行编译,测试,打包,运行,部署等工作的抽象.Maven自己是不实际负责这些工作的,而是把它们交给了插件.所以Maven命令的实际工作执行者是各种各样的插件. 要了解Maven命令,还得知道Maven生命周期的概念.Maven有三套独立的生命周期:clean, default和site.每个生命周期又有不同的阶段.这三个生命周期之间是互相独立的,调用一个不会影响另一个.但是生命周期内部各个阶段之间却是有前后依赖关系:必须先执行前面的阶段,才可以执行下一阶段. c

自动化部署java maven项目到多个目标主机的Shell脚本

本篇是<Linux Shell脚本之远程自动化部署java maven项目>的姊妹篇,但包含了bug.issue修正和添加了更多的支持特性,可以从GitHub上获取最新脚本内容:https://github.com/DingGuodong/AutomaticDeployJavaMavenProject . 自动化部署java maven项目到多个主机的环境条件假设: 1.java maven项目至多有一个依赖项目 2.多个目标主机上的部署目录是相同的 支持特性: 1.在部署主机上将java m

部署shiro官方源码时,执行maven命令出错

部署shiro官方源码时,执行maven命令会报下面错误: [INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain (default) on project shiro-root: Cannot find ma

使用 &quot;java -jar&quot;命令启动jar包时报不支持的jdk版本异常

在使用java -jar 命令启动一个jar包的时候,提示版本不支持: 1 [[email protected] eureka-server-master]# java -jar xuebusi-eureka-server-master.jar 2 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xuebusi/EurekaApplication : Unsupported major.min

使用maven时,如何修改JVM的配置参数;maven命令执行时到底消耗多少内存?

maven是使用java启动的,因此依赖JVM,那么如何修改JVM参数? MAVEN_OPTS 在系统的环境变量中,设置MAVEN_OPTS,用以存放JVM的参数,具体设置的步骤,参数示例如下: MAVEN_OPTS=-Xms256m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256M 或者临时设置 export MAVEN_OPTS=-Xms256m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256M 在m

IDEA - 利用 Mybatis 使用 maven 命令生成逆向工程

IDEA - 利用 Mybatis 使用 maven 命令生成逆向工程 数据库建表 在本地的数据库建立表,然后利用 Mybatis 使用 maven 命令生成逆向工程. 本地使用 maven 建立一个项目 maven 建立项目,pom.xml 文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0&qu

04 使用maven命令行管理项目

上一节我们安装好了maven-3.0.5,并配置好了相关环境,这一节我们将阐述使用maven命令行进行项目管理. 1.环境约束 win10 64位操作系统 maven-3.0.5 jdk-8u162-windows-x64 2.操作步骤 2.1 创建一个项目 创建一个快速启动项目,打开命令行,执行以下命令,并一路回车: mvn archetype:generate -DgroupId=net.wanho.quickstart -DartifactId=quickstart-demo -Darch