Maven浅谈之快速入门总结(maven项目的创建、打包、执行等)

Maven浅谈之快速入门总结

一、前言

以前听过maven都不知干嘛用的,只知道这个在开发界名气不小,最近学了maven,现在给大家分享下经验,先说点难点的,后面再说maven项目容易的创建方式。

二、maven的作用

在开发项目过程中会用到很多jar包,我们会去各处搜寻依赖的jar包并处理,而且还要经过不断的手工构建项目等。构建是什么意思呢?就是生成项目,编译项目,打包项目,执行,单元测试等,可以想一下,这些工作量所耗费的时间也是不少的,但maven可以解决这些繁琐事,maven可以帮助我们自动构建,免去了这些繁琐的事情。

三、下载、安装和配置环境变量

1.在这个网址上下载maven点击打开链接http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip


2.压缩到你自己喜欢的目录上,例如我的压缩目录d:\soft

3.环境变量配置

1):配置环境变量MAVEN_HOME=d:\soft\apache-maven-3.5.0
(2):配置环境变量M2_HOME=d:\soft\apache-maven-3.5.0
(3)PATH=%MAVEN_HOME%\bin
4.检查一下是否安装成功,进入DOS窗口,打开windows菜单的运行界面输入cmd

执行命令 mvn -version 结果如下说明成功,若失败则可能环境变量等因素出错。


四、使用古老的方式创建maven项目大笑

1.创建项目模板使用以下命令,如果你的电脑第一次使用该命令的话会很慢是正常的事,我的电脑都等了快半个钟了。

mvn archetype:generate  -DgroupId=com.xiaoxun.crm   -DartifactId=crm -DarchetypeArtifactId=maven-archetype-quickstart   -DinteractiveMode=false
给大家解释一下这些命令。
archetype:generate以生成项目的方式创建
-DgroupId=com.xiaoxun.crm以com开头为商业用途,org为非营利性的。然后就是公司名xiaoxun,最后一个是项目名称。代表唯一的一个标识。
DartifactId=crm 表示项目名
DarchetypeArtifactId=maven-archetype-quickstart原型的名字极速开发
DinteractiveMode=false交互模式,默认为true。如果你选择交互的话,就是有一步一步的选项指引你去选择和填写相关的标识之类的。这里我用false免去了交互。
出现以下字样说明成功创建模板了

此时在D:\soft目录中生成的crm就是项目名。
贴心提醒:此时你可以使用tree crm /F查看你创建的项目的文件结构哦
5.编译项目
进入crm目录下执行mvn compile

说明编译已经成功
6.打包项目
将你项目里面的类打成jar包的形式,执行mvn package即可

显示以上结果说明打包成功
7.配置项目的主入口类

主入口类是什么意思呢?举个例子。在java代码的时候大家都知道有个些类拥有main方法,并且从此处开始执行,而这个带main的类就叫作主类,不难理解吧。配置主入口类就是要相当于设置一个带main的类,设置类运行的起点,这么理解吧。

首先我们返回到 D:\soft 目录下,然后使用tree crm /F 看看crm的文件结构并看下jar包的位置。


我这里是在crm中的target的目录下,现在知道jar包生成的目录了,现在使用cd crm\target进入相应目录再用java -jar crm-1.0-SNAPSHOT.jar进行解包试试,然后会提示说crm-1.0-SNAPSHOT.jar中没有主清单属性

竟然不给解包,这下知道为什么要配置一下项目的主类入口了吧。

使用 jar -uvfe crm-1.0-SNAPSHOT.jar com.xiaoxun.crm.App直接设置主类,但是如果我们每次在DOS下运行项目的时候都要来这样设置,那也比较麻烦吧,所以我们再修改一下配置文件来达到一次性配置主类的效果,这样下次要在DOS运行项目的时候就不用再来执行主类设置的命令了。配置方式如下:

回到打开项目的目录下即crm的目录下


打开pom.xml然后project元素里增加以下内容:

<build>
<finalName>xiaoxun</finalName>
 <plugins>  
 
  <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-jar-plugin</artifactId>  
                <version>2.4</version>  
                <configuration>  
                    <archive>  
                        <manifest>  
                            <addClasspath>true</addClasspath>  
                            <classpathPrefix>lib/</classpathPrefix>  
                            <mainClass>com.xiaoxun.crm.App</mainClass>  
                        </manifest>  
                    </archive>  
                </configuration>  
            </plugin>  
 </plugins>  
</build>

粘贴位置如下:


8.进入target目录下运行jar包

命令行直接输入java -jar crm-1.0-SNAPSHOT.jar

输出Hello World!

说明运行jar包成功

9.运行项目里的其他类

使用mvn exec:java -Dexec.mainClass="com.mashensoft.crm.App"


现在说下maven更简单的创建方式,首先准备好eclipse工具。

1.打开eclipse工具

2.然后选择File 》 New 》Maven Project


3.在弹出的界面下一直下一步,直到出现如下界面,填写Group Id和Artifact Id然后点finish


创建一个project和该项目对比一下如图


这个我们使用过eclipse的都很熟悉,src下建包写代码,那么配置文件放在哪里?单元测试代码放在哪里?字节码文件又会在哪里?……很多文件都没有一个统一标准,更多时候都是开发者的自由选择,每个人有自己的风格,要团队协作起来很困难。你看一下使用maven构建一个普通Java项目之后的目录结构:


看到使用Maven构建的普通Java项目,对源代码、单元测试代码至后续需要的文件都有专门的目录规划。main目录下是项目的主要代码,test目录下存放测试相关的代码,编译输出后的代码会放在target目录下,src/main/java下存放Java代码,src/main/resources下存放配置文件。

pom.xml是Maven项目的配置文件

上图的最后有一个pom.xml,这是Maven的核心配置文件,pom称为Project Object Model(项目对象模型),它用于描述整个Maven项目,所以也称为Maven描述文件。

当然pom.xml也在我们修改之前是这样的

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mashensoft.crm</groupId>
  <artifactId>crm</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>crm</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>

那么里面的内容怎么个表示的呢?modelVersion指定了当前Maven模型的版本号、groupId前面已经说过了、artifactId为Maven构建的项目名、version版本号,SNAPSHOT为快照的意思,说明该项目还在开发中,是不稳定的版本。在Maven中,groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标。

有些配置文件里还包含以下元素,在这总结一下
packing为项目打包的类型,有jar、war等,默认是jar
dependencies和dependency依赖的jar包
properties用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),中文乱码的时候,可以设置为UTF-8,也可定义相关构建版本号,便于日后统一升级。
build表示构建相关的配置,比如前面用的build,在build在里面的mainClass设置了入口类


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值