• maevn HelloWorld 基本命令


    总结:

    Mvn clean compile:编译主代码

    Mvn clean test:执行测试代码

    Mvn clean package:打包

    Mvn clean install: 安装到本地仓库

    执行test之前会执行compile,执行package之前会执行test,install之前会执行package

    配置好环境变量(自行百度),构建HelloWorld:

    1, 编写pom文件:

    Maven的核心是pom.xml 定义了项目的基本信息(POM:project object model项目对象模型),用于描述项目如何构建,声明项目依赖等。

    创建一个hello-world文件夹,打开并创建一个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/xsd/maven-4.0.0.xsd">
      <!--POM模型的版本-->
      <modelVersion>4.0.0</modelVersion>
      <!--公司名-->
      <groupId>com.lhy.mvnbook</groupId>
      <!--当前项目的唯一id-->
      <artifactId>hello-world</artifactId>
      <!--当前版本,快照版-->
      <version>0.0.1-SNAPSHOT</version>
      <name>Maven HelloWorld Project</name>
      <description>Maven HelloWorld Project</description>
      
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
    </project>

    说明:g、a、v三个元素定义了一个项目基本的坐标,在maven世界,任何的jar、pom、war都是基于基本坐标进行区分的。必须

    groupId:项目属于哪个组或公司名。必须

    artifactId:当前maven项目在组中的唯一id。必须

    version:指定项目当前的版本,0.0.1-SNAPSHOT意思是快照,说明项目处于开发中,不是稳定版本。随着项目发展,version更新为1.0、1.1-SNAPSHOT、1.1、1.2等。必须

    Name:项目名称,非必须

    1, 编写主代码:

    主代码:会被打包到最终构建,如jar中,

    测试代码:只会在测试时用,不会被打包。

    默认情况:Maven默认项目主代码位于src/main/java目录,Maven会自动搜索该目录找到项目的主代码,测试代码位于src/test/java

    编写主代码,在步骤1创建的hello-world文件夹下创建src/main/java子文件夹,(再创建包com/lhy/mvnbook/helloworld)并创建HelloWorld.java

    package com.lhy.mvnbook.helloworld;
    public class HelloWorld {
        public String sayHello(String name){
            return "hello " + name;
        }
        public static void main(String[] args) {
            new HelloWorld().sayHello("maven");
        }
    }

    1, 编写测试代码:

    使用junit测试,在pom里加上junit依赖,如步骤1  pom.xml中所示, maven会自动去中央仓库(http://repo1.maven.org/maven2/)下载junit的jar包(我喜欢去http://mvnrepository.com/搜索自己需要的依赖)。

    <scope>test<scope>标识依赖范围,只对测试代码有效,在主代码中引用junit会编译错误。不写默认是compile,标识该依赖对主代码和测试代码都有效,

    <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>

    在src/test/java下新建HelloWorldTest.java

    package com.lhy.mvnbook.helloworld;
    import static org.junit.Assert.*;
    import org.junit.Test;
    public class HelloWorldTest {
        @Test
        public void test() {
            String result = new HelloWorld().sayHello("maven");
            assertEquals("hello maven", result);
        }
    }

    主代码和测试代码都创建好后,来学几个基本的maven命令:

    maven clean compile:

    切换到项目根路径hello-world,打开命令窗口,运行命令:mvn clean compile:

    Maven构建的所有输出都会在项目根目录的target目录。

    Compile:编译主项目,会在项目主代码编译到target/classes目录生成HelloWorld.class

    Clean:删除target目录,mvn clean compile就是先清除以前的编译结果,重新编译

    测试:---------------------------------

    切换到项目根目录执行mvn clean test

    测试通过,没有错误

    生成目录文件:

    4,打包和运行

    将项目打包,pom中不写打包类型默认是打成jar包

    <packaging>pom</packaging>标签指定项目的类型

    执行命令:mvn clean package:

    打包之前会执行编译、测试等操作。

    生成的jar

    5, 将jar包插入到本地仓库:以供其他项目引用

    执行mvn clean install

    默认的本地仓库位置:

    C:Userslhy.m2 epositorycomlhymvnbookhello-world.0.1-SNAPSHOT

  • 相关阅读:
    OC中的block
    tips: NSCopying和NSMutableCopying
    tips: @property 、@synthesize和@dynamic
    静态库SDK引发的符号冲突
    复杂业务app中跨业务页面调用方案
    AOP
    【HTML 初学】3、HTML标题
    【HTML 初学】2、HTML属性
    【HTML 初学】1、HTML元素
    【Java编程思想】二、一切都是对象
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/6807585.html
Copyright © 2020-2023  润新知