Maven(1)的配置和基础知识!

Maven简介: 基于项目对象模型(POM),项目的管理工具!

1.maven下载maven.apache.org

2.配置环境变量  新建M2-HOME  变量值maven的路径;编辑PATH  ;%M2-HOME%\bin  配置验证:mvn -v

3.maven目录结构  

自动构建目录骨架的两种方式:

  3.1.  mvn  archetype:generate  按照提示进行选择

  3.2.mvn  archetype:generate -DgroupId=组织名,公司网址的反写+项目名  com.daoan.maven01

             -DartifactId=项目名-模块名  maven01-service

             -Dversion=版本号   1.0.0-SHAPSHOT

             -Dpackage=代码所存在的包名    com.daoan.maven01.service

     规范:在创建maven项目时,package包名应该与groupId和artifactId的名字 要一致

    -main

      -java

        -package

    -test

      -java

        -package

4.maven常用指令

  编译: mvn compile 

  测试: mvn test

  配置验证:mvn -v

  删除target: mvn clean

  安装jar包到本地仓库中:mvn install

  对maven来说引入固件包的流程,通过mvn compile编译源代码,编译过程中程序用到了其他的工具包会到pom.xml中查找是否引入了依赖包坐标

  引入之后会到本地仓库中查找,如果有,maven会将项目加入到class path中,如果没有会到网上下载,并将其放入本地仓库供我们使用

<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.daoan.maven02</groupId>
    <artifactId>maven02-model02</artifactId>
    <version>0.0.1SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>com.daoan.maven01</groupId>
            <artifactId>maven01-model</artifactId>
            <version>0.0.1SNAPSHOT</version>
        </dependency>



    </dependencies>
</project>
   

 

4.pom.xml的配置      (pom.xml和src目录平行)

  在struts2中找到pom.xml  (D:\opensource\struts-2.3.34\lib\struts2-core-2.3.34.jar)

  pom配置:

<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.daoan.maven01</groupId>
    <artifactId>maven01-model</artifactId>
    <version>0.0.1SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>
</project>
   

 5.坐标:

     groupId=  组织名,公司网址的反写+项目名  com.daoan.maven01

     artifactId=  项目名-模块名  maven01-service

     version=  版本号   1.0.0-SHAPSHOT

     package=  代码所存在的包名    com.daoan.maven01.service

     规范:在创建maven项目时,package包名应该与groupId和artifactId的名字 要一致

6.仓库:

  含义:存储Maven共享构建的位置

  本地仓库

  远程仓库 (私服、中央仓库<http://search.maven.org,很多的开源框架>)

  镜像仓库(仓库X能提供Y的所有功能,setting.xml配置)

   修改镜像仓库的位置,访问国内的镜像仓库  D:\Maven\apache-maven-3.5.2\conf\settings.xml  146行 

<mirror>
      <id>maven.net.cn</id>
      <mirrorOf>central</mirrorOf>
      <name>central mirror in china</name>
      <url>http://maven.net.cn/content/groups/public</url>
    </mirror>

   更改本地仓储的位置( 不建议放在C盘,但默认是C盘)

  在setting.xml文件第51行修改路径:  <localRepository>D:/Maven/repo</localRepository>

  这样的话,在下一次编译的时候就会更改路径,将setting.xml文件复制一份到repo中,下次更新maven就不必修改setting

 

7.生命周期和插件

  三套生命周期:

  第一套   clean:清理项目    分为(pre-clean、clean、post-clean)

  第二套   default:构建项目(重要)  (compile  、test  、package、install)

  第三套   site:简历项目站点  (和clean差不多)

  

  插件:    

    插件source的使用,可以将项目源码进行打包!

    当运行package命令时,项目自动进行编译、测试、打包,并且生成source.jar

    对声明周期的阶段而言,执行某个阶段前面的阶段也会依次执行!

 

    打开http://maven.apache.org   --> Maven Plugins  -->source -->jar-no-fork放入<goal标签中>

    打开pom.xml对插件进行配置 

    

<build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-source-plugin</artifactId>
              <version>2.4</version>
              <executions>
                  <execution>
                      <phase>package</phase>
                      <goals>
                          <goal>jar-no-fork</goal>
                      </goals>
                  </execution>
              </executions>
          </plugin>
      </plugins>
  </build>

 

posted @ 2018-01-31 21:47  书安  阅读(127)  评论(0编辑  收藏  举报