• Maven


    Maven引入构建包的流程

    执行mvn compile命令编译源代码,如果编译过程中需要用到其他的包,
    maven将会在pom.xml文件中查找是否引入该依赖包的坐标。
    示例:

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.10</version>
            </dependency>
        </dependencies>
    

    引入坐标之后,将会在本地仓库中查找
    如果本地仓库中的没有相应的依赖包,默认继续在中央或远程仓库查找,下载后会放到本地仓库。

    示例:使用本地仓库中的依赖包

    1 - 安装依赖包到本地仓库中

    mvn install 安装jar包到本地仓库中:anliven.testmaven01.HelloMaven

    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven
    $ mvn install
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building testmaven 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    Downloading: http://central.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.4/maven-install-plugin-2.4.pom
    Downloaded: http://central.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.4/maven-install-plugin-2.4.pom (0 B at 0 B/s)
    Downloading: http://central.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.4/maven-install-plugin-2.4.jar
    Downloaded: http://central.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.4/maven-install-plugin-2.4.jar (0 B at 0 B/s)
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testmaven ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMavensrcmain
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testmaven ---
    [INFO] Changes detected - recompiling the module!
    [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
    [INFO] Compiling 1 source file to D:Anliven-RunningenEclipseProjectsTestMaven	argetclasses
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testmaven ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMavensrc	est
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testmaven ---
    [INFO] Changes detected - recompiling the module!
    [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
    [INFO] Compiling 1 source file to D:Anliven-RunningenEclipseProjectsTestMaven	arget	est-classes
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ testmaven ---
    [INFO] Surefire report directory: D:Anliven-RunningenEclipseProjectsTestMaven	argetsurefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running anliven.testmaven01.HelloMavenTest
    Run test!
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.057 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO]
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ testmaven ---
    [INFO] Building jar: D:Anliven-RunningenEclipseProjectsTestMaven	arget	estmaven-0.0.1-SNAPSHOT.jar
    [INFO]
    [INFO] --- maven-install-plugin:2.4:install (default-install) @ testmaven ---
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.5/plexus-utils-3.0.5.pom
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.5/plexus-utils-3.0.5.pom (2.5 kB at 4.7 kB/s)
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus/3.1/plexus-3.1.pom (19 kB at 24 kB/s)
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.pom
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.pom (1.1 kB at 1.9 kB/s)
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom (5.0 kB at 8.9 kB/s)
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom (7.2 kB at 13 kB/s)
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom (7.3 kB at 13 kB/s)
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.5/plexus-utils-3.0.5.jar
    Downloading: http://central.maven.org/maven2/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.jar
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus-digest/1.0/plexus-digest-1.0.jar (12 kB at 9.8 kB/s)
    Downloaded: http://central.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.5/plexus-utils-3.0.5.jar (230 kB at 179 kB/s)
    [INFO] Installing D:Anliven-RunningenEclipseProjectsTestMaven	arget	estmaven-0.0.1-SNAPSHOT.jar to D:DownLoadFilesapache-maven-repoanliven	estmaven01	estmaven.0.1-SNAPSHOT	estmaven-0.0.1-SNAPSHOT.jar
    [INFO] Installing D:Anliven-RunningenEclipseProjectsTestMavenpom.xml to D:DownLoadFilesapache-maven-repoanliven	estmaven01	estmaven.0.1-SNAPSHOT	estmaven-0.0.1-SNAPSHOT.pom
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 9.602 s
    [INFO] Finished at: 2017-10-20T17:14:19+08:00
    [INFO] Final Memory: 18M/210M
    [INFO] ------------------------------------------------------------------------
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven
    $ ls -l
    total 5
    -rw-r--r-- 1 guowli 1049089 561 Oct 19 17:44 pom.xml
    drwxr-xr-x 1 guowli 1049089   0 Oct 19 13:21 src/
    drwxr-xr-x 1 guowli 1049089   0 Oct 20 17:14 target/
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven
    $ ls -l target/
    total 4
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:14 classes/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:14 maven-archiver/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:14 maven-status/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:14 surefire-reports/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:14 test-classes/
    -rw-r--r-- 1 guowli 1049089 2150 Oct 20 17:14 testmaven-0.0.1-SNAPSHOT.jar
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven
    $
    

    2 - 创建使用本地仓库依赖包的Maven项目(包含代码)

    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects
    $ ls -l
    total 4
    drwxr-xr-x 1 guowli 1049089 0 Sep  1 16:50 Test/
    drwxr-xr-x 1 guowli 1049089 0 Oct 20 17:14 TestMaven/
    drwxr-xr-x 1 guowli 1049089 0 Oct 20 17:22 TestMaven02/
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects
    $ cd TestMaven02/
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ ls -l
    total 1
    -rw-r--r-- 1 guowli 1049089 729 Oct 20 17:13 pom.xml
    drwxr-xr-x 1 guowli 1049089   0 Oct 20 16:56 src/
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ cat 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>anliven.testmaven02</groupId>
            <artifactId>testmaven02</artifactId>
            <version>0.0.1-SNAPSHOT</version>
    
            <dependencies>
                    <dependency>
                            <groupId>junit</groupId>
                            <artifactId>junit</artifactId>
                            <version>4.10</version>
                    </dependency>
                    <dependency>
                            <groupId>anliven.testmaven01</groupId>
                            <artifactId>testmaven</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                    </dependency>
             </dependencies>
    
    </project>
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ cat src/main/java/anliven/testmaven02/Speak.java
    package anliven.testmaven02;
    
    import anliven.testmaven01.HelloMaven;
    
    public class Speak {
    
            public String sayHi() {
                    return new HelloMaven().sayHello();
            }
    
    }
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ cat src/test/java/anliven/testmanven02/SpeakTest.java
    package anliven.testmaven02;
    
    import org.junit.*;
    import org.junit.Assert.*;
    
    
    public class SpeakTest {
            @Test
            public void testsayHi() {
                    System.out.println("Run test!");
                    Assert.assertEquals("Hello Maven!", new Speak().sayHi());
            }
    
    }
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $
    

    3- 运行mvn complie、test、package命令

    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ ll
    total 1
    -rw-r--r-- 1 guowli 1049089 729 Oct 20 17:13 pom.xml
    drwxr-xr-x 1 guowli 1049089   0 Oct 20 16:56 src/
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ mvn compile
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building testmaven02 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testmaven02 ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMaven02srcmain
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testmaven02 ---
    [INFO] Changes detected - recompiling the module!
    [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
    [INFO] Compiling 1 source file to D:Anliven-RunningenEclipseProjectsTestMaven02	argetclasses
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.067 s
    [INFO] Finished at: 2017-10-20T17:28:30+08:00
    [INFO] Final Memory: 15M/304M
    [INFO] ------------------------------------------------------------------------
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ mvn test
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building testmaven02 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testmaven02 ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMaven02srcmain
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testmaven02 ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testmaven02 ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMaven02src	est
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testmaven02 ---
    [INFO] Changes detected - recompiling the module!
    [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
    [INFO] Compiling 1 source file to D:Anliven-RunningenEclipseProjectsTestMaven02	arget	est-classes
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ testmaven02 ---
    [INFO] Surefire report directory: D:Anliven-RunningenEclipseProjectsTestMaven02	argetsurefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running anliven.testmaven02.SpeakTest
    Run test!
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 3.468 s
    [INFO] Finished at: 2017-10-20T17:28:50+08:00
    [INFO] Final Memory: 15M/271M
    [INFO] ------------------------------------------------------------------------
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ mvn package
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building testmaven02 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testmaven02 ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMaven02srcmain
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testmaven02 ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testmaven02 ---
    [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory D:Anliven-RunningenEclipseProjectsTestMaven02src	est
    esources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testmaven02 ---
    [INFO] Changes detected - recompiling the module!
    [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
    [INFO] Compiling 1 source file to D:Anliven-RunningenEclipseProjectsTestMaven02	arget	est-classes
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ testmaven02 ---
    [INFO] Surefire report directory: D:Anliven-RunningenEclipseProjectsTestMaven02	argetsurefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running anliven.testmaven02.SpeakTest
    Run test!
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO]
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ testmaven02 ---
    [INFO] Building jar: D:Anliven-RunningenEclipseProjectsTestMaven02	arget	estmaven02-0.0.1-SNAPSHOT.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 3.830 s
    [INFO] Finished at: 2017-10-20T17:29:05+08:00
    [INFO] Final Memory: 17M/258M
    [INFO] ------------------------------------------------------------------------
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $ ls -l target/
    total 4
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:28 classes/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:29 maven-archiver/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:28 maven-status/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:28 surefire-reports/
    drwxr-xr-x 1 guowli 1049089    0 Oct 20 17:28 test-classes/
    -rw-r--r-- 1 guowli 1049089 2202 Oct 20 17:29 testmaven02-0.0.1-SNAPSHOT.jar
    
    guowli@5CG450158J MINGW64 /d/Anliven-Running/Zen/EclipseProjects/TestMaven02
    $
    
  • 相关阅读:
    node.js系列:(调试工具)node-inspector调试Node.js应用
    NodeJs系列一:神奇的nodejs
    [原创] JavaScript实现简单的颜色类标签云
    jquery实现图片上传前本地预览
    前端制作入门知识
    解决pycharm中加载本地网页,弹出“requested without authorization”提示框不能加载网页的问题
    Mac中的Python安装selenium,结合chrom及chromdriver使用
    面试题(一)
    Python脚本之——API自动化框架总结
    红日ATT&CK红队评估实战靶场1
  • 原文地址:https://www.cnblogs.com/anliven/p/8001468.html
Copyright © 2020-2023  润新知