• Maven项目构建利器03——第一个Maven工程


    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

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5     <modelVersion>4.0.0</modelVersion>
     6 
     7     <groupId>com.wzy</groupId>
     8     <artifactId>Hello</artifactId>
     9     <packaging>jar</packaging>
    10     <version>1.0-SNAPSHOT</version>
    11     
    12 
    13 </project>

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

    1 public class Hello{
    2      public static void main(String []args){
    3          System.out.println("Hello world");
    4      }
    5      public static String getHello() {
    6          return "getHello";
    7      }
    8 }

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

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

    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,并编写如下代码:

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

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

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5     <modelVersion>4.0.0</modelVersion>
     6 
     7     <groupId>com.wzy</groupId>
     8     <artifactId>Person</artifactId>
     9     <packaging>jar</packaging>
    10     <version>1.0-SNAPSHOT</version>
    11     <dependencies>
    12         <dependency>
    13             <groupId>com.wzy</groupId>
    14             <artifactId>Hello</artifactId>
    15             <version>1.0-SNAPSHOT</version>    
    16         </dependency>
    17     </dependencies>
    18 
    19 </project>

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

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

    g)mvn site

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

  • 相关阅读:
    理解缓慢变化维(Slowly Changing Dimension)
    分析Reporting Service的报表执行记录
    XCOPY
    Esxi主机从VC断开的怪事
    奇怪的SQLserver执行
    明细表达到15亿了
    现在才知道“quota”
    oledb读取Excel数据丢失原因
    配置subversion
    sql服务器的操作系统升级,数据库如何来迁移呢?
  • 原文地址:https://www.cnblogs.com/fengyun2019/p/10906313.html
Copyright © 2020-2023  润新知