Maven的点滴

下载安装配置

  1. 下载,解压:
$: wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

$: tar -zxvf apache-maven-3.6.1-bin.tar.gz -C /opt/
  1. 配置环境变量
$: vim ~/.bashrc

进行如下配置

JAVA_HOME=/opt/jdk1.8.0_221
JRE_HOME=/opt/jdk1.8.0_221/jre
MAVEN_HOME=/tools/apache-maven-3.6.1

PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

指定阿里的镜像

  1. copy:
cp $MAVEN_HOME/conf/settings.xml $HOME/.m2/
  1. 打开并加入:
vim ~/.m2/settings.xml

中:

        
                ali
                central
                ALI  Mirror
                http://maven.aliyun.com/nexus/content/repositories/central 
        

或者在profiles->profile->repositories中加入:


    nexus-aliyun
    Nexus aliyun
    default
    http://maven.aliyun.com/nexus/content/groups/public
    
        false
    
    
        true
    

项目生成

mvn archetype:generate此方式用于生成标准Maven项目,其中省略了很多的选择

  1. -X详细日志显示
  2. -DinteractiveMode=false/true 是否为人机交互方式
  3. -DgroupId=com.mycompany.app -DartifactId=my-app -Dversion=1.0坐标指定
  4. -DarchetypeCatalog=local 指定archetype-catalog.xml是本地或者远程(每次生成者会从http://repo1.maven.org/maven2/archetype-catalog.xml 查找项目骨架,时间会很长,该项指定为local,会从.m2/repository/org/apache/maven/archetype/archetype-catalog中查找)
  5. -DarchetypeArtifactId=maven-archetype-quickstart指定用于“项目生成”的插件
  6. 一个较为完整的生成脚本如下:
 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app5 \
-Dversion=1.0 \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false  \
-DarchetypeCatalog=local 

指定项目的JDK版本

第一种方式:

    
        1.7
        1.7
    

第二种方式

      
        
            
                maven-compiler-plugin
                3.1
                
                    1.8
                    1.8
                
            
        
    

指定Main-Class


  org.apache.maven.plugins
  maven-jar-plugin
  
    
      
          true
          lib/
          cn.johnyu.z1.Test3
          true
          true
        
      
    

关于maven-dependency-plugin

  1. 将所有依赖导出,会将所有的jar包copy到target/dependency/中
    mvn dependency:copy-dependencies
  2. 将所有依赖“解包”导出
    mvn dependency:unpack-dependencies
  3. 指定的依赖导出:
    mvn dependency:copy
  4. 指定的依赖“解包”导出:
    mvn dependency:uppack
  5. 其中3,4都需要“指定依赖”,方法如下:

    org.apache.maven.plugins
    maven-dependency-plugin
    3.1.1
    
        
            
                junit
                junit
                4.12
            
        
    

仓库结构

Maven的点滴_第1张图片
Maven仓库结构

排除依赖、阻止传递依赖

  • 排除对Project-E的依赖

      sample.ProjectB
      Project-B
      1.0-SNAPSHOT
      
        
          sample.ProjectE 
          Project-E
        
      
    
  • 这是Project-A中的pom, 如果其它项目X依赖Project-A,那么Project-B 不会被引入到X中。
    
      sample.ProjectB
      Project-B
      1.0
      compile
      true 
    

你可能感兴趣的:(Maven的点滴)