1.Maven工程的结构

我们需要通过Maven进行自动化构建, 以编译为例, Maven要想自动进行编译, 那么它必须知道Java源文件保存在哪里,所以要遵守Maven的约定,也就是约定大于配置,配置大于编码,无论我们使用什么框架,如果我们自己定义的东西想要让框架知道,都需要遵守框架的约定。

1) Maven项目结构:

2) Maven项目各个部分的作用:

[1]根目录: 工程名

[2]src目录: 源码

[3]pom.xml文件 : Maven工程的核心配置文件

[4]main目录: 存放主程序

[5]test目录: 存放测试程序

[6]java目录: 存放Java源文件

[7]resources目录: 存放框架或其他工具的配置文件

2.创建第一个Maven项目

我们安装上面介绍的标准maven项目结构,创建一个maven项目。

pom.xml

 <?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.wzy</groupId>
<artifactId>Hello</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version> </project>

在main目录下面的java文件夹下创建一个Hello.java

 public class Hello{
public static void main(String []args){
System.out.println("Hello world");
}
public static String getHello() {
return "getHello";
}
}

在test目录下的java文件夹下创建一个TestHello.java

 public class TestHello{
public static void main(String []args){
System.out.println("Test Hello");
}
}

3.Maven的常用命令

经过上面的准备工作之后,我们就可以运行一些Maven命令,首先来看一下,常见的Maven命令有哪些:

[1]mvn clean: 清理

[2]mvn compile: 编译主程序

[3]mvn test-compile: 编译测试程序

[4]mvn test: 执行测试

[5]mvn package: 打包

[6]mvn install : 安装

[7]mvn site : 生成站点

需要注意的是,上述的这些命令,必须在pom.xml所在的目录执行

a)mvn compile命令

在执行完mvn compile命令之后,我们可以看到在src同级目录生成了一个target文件夹,里面就保存编译之后.class文件,这里注意这个命令编译的是主程序test下的java代码并不会进行编译。

b)mvn test-compile

在执行完mvn test-compile命令之后,我们可以看到在src同级目录生成了一个target文件夹,里面就保存编译之后.class文件,这里要注意的是,这个命令于mvn compile不同,他会同时编译主程序和测试程序。

c)mvn clean命令:

执行完mvn clean命令之后,我们就会发现之前生成的target文件夹不见了,也就是说clean命令的作用是将我们编译的目标文件进行清除。

d)mvn test

执行mvn test命令maven会将 test目录下的junit单元测试类进行执行,并且会统计出测试报告。

e)mvn package

通过mvn package这个命令,我们可以对程序进行打包,打包的方式根据我们在pom.xml中设置的方式,这里可添加jar或者war。

打包成功之后就会在target文件夹生成一个jar包:

f)mvn install 

mvn install这个命令是Maven特有的,它的作用是将我们项目打包的jar安装到本地仓库中,我们可以通过坐标进行引用(GAV后面会进行介绍),根据上图可以看到已经成功的将jar包安装到本地仓库。

下面我们以同样的方式建立一个名为Person的Maven项目,我们希望引入已经安装到本地仓库的Hello项目的jar包并调用其中getHello方法。在Person的src/main/java下创建Person.java,并编写如下代码:

 public class Person{
public static void main(String []args) {
System.out.println(Hello.getHello());
}
}

之后在Person项目的pom.xml引入Hello项目的依赖:

 <?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.wzy</groupId>
<artifactId>Person</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.wzy</groupId>
<artifactId>Hello</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies> </project>

之后在Person项目的pom.xml路径下运行mvn compile命令,对Person项目中的代码进行编译。

我们可以看到编译成功,说明我们成功从Maven本地仓库中引入了Hello项目的jar包。

g)mvn site

生成项目相关信息的网站,在项目中并不常用,生成时间比较长,这里不做介绍

Maven项目构建利器03——第一个Maven工程的更多相关文章

  1. Maven项目构建利器05——Maven的生命周期

    Maven各个构建环节执行的顺序: 不能打乱顺序, 必须按照既定的正确顺序(编译,测试.打包.部署)来执行Maven的核心程序中定义了抽象的生命周期, 生命周期中各个阶段的具体任务是由插件来完成的,可 ...

  2. Maven项目构建利器04——Maven的一些核心概念

    1.坐标 1)数学上的坐标: [1].在平面上. 使用X,Y两个向量可以唯一的定位平面上的任意一个点 [2]在空间中, 使用X,Y,Z三个向量可以唯一的定位空间中的任何一个点 2)Maven中的坐标: ...

  3. Maven项目构建利器01——为什么要使用Maven

    1.为什么要使用Maven a)一个项目就是一个工程 如果一个项目非常庞大,不适合用package(包)来划分模块, 最好是每一个模块对应一个工程 分工合作,借助于Maven就可以将一个项目拆分成多个 ...

  4. Maven项目构建利器02——安装Maven核心程序

    1.Maven也是用Java编写的工具,同样运行在JVM上,所以我们在安装Maven之前需要确保已经安装了JDK,首先来检查电脑上是否安装JDK. 2.如上图说明电脑中已经安装了JDK,下面就要去官网 ...

  5. maven项目构建

    Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在 ...

  6. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

  7. Maven(一)如何用Eclipse创建一个Maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  8. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  9. 有手就行4——jenkins项目构建类型(自由风格,maven风格)

    有手就行4--构建Maven项目 Jenkins项目构建类型(1)-Jenkins构建的项目类型介绍 Jenkins项目构建类型(2)-自由风格项目构建 Jenkins项目构建类型(3)-Maven项 ...

随机推荐

  1. 第十三周Java课程学习总结

    学习总结: 记事本界面: 监听适配器. 可以通过Window Adapter来实现监听. void windowActivated(WindowEvent e) 激活窗口时调用. void windo ...

  2. MySQL学习笔记(cmd模式下的操作)

    1.登入MySQL 1.1 登入MySQL 1.1.1命令如下: C:\Users\zjw>mysql -hlocalhost -uroot -p Enter password: ****** ...

  3. LeetCode 152. 乘积最大子序列(Maximum Product Subarray)

    题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. ...

  4. asp.net form submit 在Chrome里面看Form提交

    Chrome中查看 request  form data 在Fiddler中查看

  5. defineProperty和defineProperties介绍

    v-model 实现的原理 angular 是 mvc 的实现原理,ng-model 是靠脏值检测实现的 脏值检测:for 循环一个个对比 vue 靠的是数据劫持 和 发布者,订阅者模式 数据劫持:O ...

  6. Android 开源控件与常用开发框架开发工具类

    Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...

  7. Day1_Python基础一

    一.基本认识 1.计算机基础 CPU:计算 内存:缓存 硬盘:存储 操作系统:硬件与软件的桥梁 应用程序:应用的平台 2.Python的历史 1989年龟叔,追求清晰.简单.优美的原则. 主要领域:云 ...

  8. Anaconda 32在windows下安装gensim

    安装Anaconda 2.4以后运行corpora.MmCorpus.serialize的时候出错 换了Anaconda 2.1以后没问题了 原因:Anaconda 2.4的numpy是1.10.1版 ...

  9. 如何使用Loadrunner Controller 监控服务器的系统资源

    (1)保证装有loadrunner Controller的控制机和被监控的目标机(服务器)之间能够ping通,在同一个网段内,保证两台机器用administrator登陆. (2)Win + R, s ...

  10. Linux下面配置安装jmeter(1)

    一.下载安装JDK Jmeter依赖jdk环境,我们先准备jdk,查看是否安装jdk: # rpm -qa | grep jdk    或者    #Java –version 我本地已准备好了jdk ...