maven 命令_Maven教程3:使用Maven构建项目

点击上方“Java技术前线”,选择“置顶或者星标”

与你一起成长

maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。

一、构建Jave项目

1.1、创建Jave Project

  1、使用mvn archetype:generate命令,如下所示:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

  2、使用mvn archetype:create命令,如下所示:

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

使用"mvn archetype:generate"命令和"mvn archetype:create"都可以创建项目,目前没有发现这两者的区别,唯一区别的地方就是发现使用"mvn archetype:generate"命令创建项目时要特别长的时间才能够将项目创建好,而使用"mvn archetype:create"命令则可以很快将项目创建出来。

使用"mvn archetype:create"命令创建一个java项目的过程如下图所示:

c5a2c2661e09a6c2c43a49e8d992a26a.png

BUILD SUCCESS就表示项目构建成功,当在前用户目录下(即C:\Documents and Settings\Administrator)下构建了一个Java Project叫做myapp。

构建好的Java项目的目录结构如下:

399e3c2448f92dcaa071d3874b5b806c.png

可以看到,Maven帮我们创建的项目是一个标准的Maven项目,不过目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放log4j.properties等)和src/test/resources(存放测试时用到的配置文件),如下图所示:

20dc1640e26b259a218a7ab42a522c3a.png

然后我们就可以将创建好的myapp项目导入到Eclipse中进行开发了,如下图所示:

af2e926b68678884e1ba5abd8973567c.png

1.2、JavaProject的pom.xml文件说明

通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。如下图所示:

9b25b6e8eb8451d57c92498a60b87d31.png

1、pom意思就是project object model。

2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。

3、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml

pom.xml文件的内容如下:

1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

3 <modelVersion>4.0.0modelVersion>

4

5 <groupId>com.mycompany.appgroupId>

6 <artifactId>myappartifactId>

7 <version>1.0-SNAPSHOTversion>

8 <packaging>jarpackaging>

9

10 <name>myappname>

11 <url>http://maven.apache.org

12

13 <properties>

14 <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>

15 properties>

16

17 <dependencies>

18 <dependency>

19 <groupId>junitgroupId>

20 <artifactId>junitartifactId>

21 <version>3.8.1version>

22 <scope>testscope>

23 dependency>

24 dependencies>

25 project>

pom.xml文件的节点元素说明:

           pom文件的顶级节点

         object model版本,对Maven2和Maven3来说,只能是4.0.0 

           项目创建组织的标识符,一般是域名的倒写

          定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目

           当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

         打包的方式,有jar、war、ear等

            项目的名称

             项目的地址

        属性配置,比如:UTF-8

       构建项目依赖的jar

其中由groupId、artifactId和version唯一的确定了一个项目坐标

1.3、使用Maven编译-测试-打包-安装项目

1.3.1、编译

编译源程序,进入命令行,切换到myapp目录,执行命令:mvn clean compile,如下图所示:

0c9e5a707a073fb1f4cbd75f1ed5cea2.png

编译成功,在myapp目录下多出一个target目录,target\classes里面存放的就是编译后的class文件,如下图所示:

b24d51c8f86527524dd565ed445a2797.png

1.3.2、测试

进入命令行,切换到myapp目录,执行命令:mvn clean test,如下图所示:

aa9deb6d9878d3b8b5c786fcc51ac3c3.png

测试成功,在myapp\target目录下会有一个test-classes目录,存放的就是测试代码的class文件,如下图所示:

a812ab8af4ea1d37bb937572b0a546aa.png

1.3.3、打包

进入命令行,切换到myapp目录,执行命令:mvn clean package,执行打包命令前,会先执行编译和测试命令,如下图所示:

d0c96ddbbadcad4b1dc2c65a9a3e93cf.png

99b9d96d45801f7bf402f3c3823db0e0.png

构建成功后,会在target目录下生成myapp-1.0-SNAPSHOT.jar包,如下图所示:

969ad4dbd07726b0aca51d562a5ecd08.png

1.3.4、安装

进入命令行,切换到my-app目录,执行命令:mvn clean install ,执行安装命令前,会先执行编译、测试、打包命令,如下图所示:

dd581db17d9398c4b56e404a508a0734.png

55a57c535014175e20b86ee876420337.png

构建成功,就会将项目的jar包安装到本地仓库,如下图所示:

60de6d7fa19d881dfb8efdcfc47db885.png

1.3.5、运行jar包

进入命令行,切换到myapp目录,执行命令:java -cp target\myapp-1.0-SNAPSHOT.jar com.mycompany.app.App,如下图所示:

24c7a17f7ada3d1d1dad03a0a7b8754d.png

二、构建JavaWeb项目

2.1、创建JavaWeb项目

1、使用mvn archetype:generate命令,如下所示:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

使用"mvn archetype:generate"命令创建一个javaWeb项目的过程如下图所示:  

93ee709a21e81c0c889faf9fafdb86b1.png

使用"mvn archetype:generate"命令创建一个javaWeb项目的时间非常长,要了40多秒,有时甚至会更久,不知道为啥。

2、使用mvn archetype:create命令,如下所示:

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

使用"mvn archetype:create"命令创建一个javaWeb项目的过程如下图所示:  

32517345b8b2bb77b6b5fec1ca458a74.png

使用"mvn archetype:create"命令创建一个javaWeb项目的时间非常快,几秒钟就可以了。

创建好的JavaWeb项目的目录结构如下:

38809972e4fafbbbc4bed2356456b2f6.png

创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources

如下图所示:

5b7fa482fcd2e936fecd263ac29afab7.png

接着我们就可以将创建好的JavaWeb导入Eclipse中进行开发了,如下图所示:

9098e5c26e8185fca514024a1bd33b86.png

2.2、使用Maven打包发布Web项目

Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。

在命令行切换到myWebApp目录,执行:mvn package,构建成功后,myWebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。如下图所示:

c1e6f6bda04e28cd8b27fb526fa0bad2.png

db51c4364ff5d543de2e0910236d72a5.png

打包成功,在myWebApp\target目录下生成了一个myWebApp.war文件,如下图所示:

8335cb20f0127403c08bef36ba06738d.png

将myWebApp.war放到tomcat服务器中运行,如下图所示:

d8329db65eef014ed7ea53018f66f12f.png

运行效果如下:

  7ec5240af1fda0b9462246ffc19bfb00.png

除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:

1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

3 <modelVersion>4.0.0modelVersion>

4 <groupId>com.mycompany.appgroupId>

5 <artifactId>myWebAppartifactId>

6 <packaging>warpackaging>

7 <version>1.0-SNAPSHOTversion>

8 <name>myWebApp Maven Webappname>

9 <url>http://maven.apache.org

10 <dependencies>

11 <dependency>

12 <groupId>junitgroupId>

13 <artifactId>junitartifactId>

14 <version>3.8.1version>

15 <scope>testscope>

16 dependency>

17 dependencies>

18 <build>

19 <finalName>myWebAppfinalName>

20 <pluginManagement>

21

22 <plugins>

23 <plugin>

24 <groupId>org.mortbay.jettygroupId>

25 <artifactId>maven-jetty-pluginartifactId>

26 plugin>

27 plugins>

28 pluginManagement>

29 build>

30 project>

打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:

  10300e261735600428f73104fdeddc77.png

  8057507f22d551aa4771413db0753ad7.png

接着就可以在8080端口上访问应用了。如下图所示:

fa8820521f12b41bf52b6d6916ad8d92.png

三、Maven创建项目的命令说明

mvn archetype:create或者mvn archetype:generate  固定写法

  -DgroupId                       组织标识(包名)

  -DartifactId                      项目名称

  -DarchetypeArtifactId                 指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project

  -DinteractiveMode                    是否使用交互模式

  archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

* maven-archetype-archetype

* maven-archetype-j2ee-simple

* maven-archetype-mojo

* maven-archetype-portlet

* maven-archetype-profiles (currently under development)

* **maven-archetype-quickstart**

* maven-archetype-simple (currently under development)

* maven-archetype-site

* maven-archetype-site-simple

* **maven-archetype-webapp**

   每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstartmaven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。

不得不说,Maven的确是一个很好的项目构建工具。掌握好Maven对于项目开发是非常有帮助的。

作者:孤傲苍狼

来源:https://www.cnblogs.com/xdp-gacl/p/4240930.html

热门内容:

  • 888G面试资源分享
  • 腾讯云双11特惠秒杀:1核2G配置云服务器,88元/1年
  • 2019年Java经典面试题汇总
  • Maven教程1:Maven入门
  • Maven教程2:Maven项目构建过程练习

1aeb09b922d7967ca33815e228725a98.png

喜欢就点个"在看"呗^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值