zoukankan      html  css  js  c++  java
  • maven入门笔记

    Maven目录结构

    • maven的目录结构如下
    src
            - main
                -java
                    -package
           - test
               - java
                   - package
           - resources
    pom.xml
    

    配置文件

    • maven基于约定,减少了配置,比如约定的配置结构。
    • maven的配置文件名为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">
    <modelVersion>4.0.0</modelVersion>
    <!-- 组织-->
    <groupId>com.imooc.maven01</groupId>
    <!-- 项目名词 -->
    <artifactId>maven01-model</artifactId>
    <!-- 版本 -->
    <version>0.0.1SNAPSHOT</version>
    <!--打包类型-->
    <packaging>jar</packaging>
    <!-- 依赖 -->
    <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
    </dependencies>
    </project>
    

    构建命令

    maven的基本命令是mvn,通过使用不同的参数来实现不同的效果。

    mvn [options] [<goal(s)>] [<phase(s)>]
    

    查看系统版本

    mvn -v
    

    编译项目

    mvn compile
    

    测试项目

    mvn test
    

    打包项目

    mvn package
    

    删除target目录

    mvn clean
    

    安装jar包到本地仓库,安装的目录:组织ID/项目ID/版本

    mvn install
    

    跳过测试

    mvn package -Dmaven.test.skip=true
    

    archetype创建项目骨架

    我么可以使用maven的archetype插件来自动地创建项目的骨架。
    交互式的创建

    mvn archetype:generate
    

    批处理模式

    mvn archetype:generate -B -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.1  -DgroupId=com.company -DartifactId=project -Dversion=1.0-SNAPSHOT -Dpackage=com.company.project
    

    坐标和仓库

    maven的构建是基于坐标的,groupId为组织的名字,如com.company,artifactedId为项目名字加模块名,如oops-model1version为版本。

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

    仓库:存储maven项目依赖包的地方,首先会在本地仓库中去查找,如果没有找到,就去中央仓库中去查找,如果再没有找到就报错。

    maven的生命周期

    Maven有以下三种标准的生命周期:

    • clean 清理项目
    • default 构建项目
    • site 生成项目文档站点

    maven的生命周期相互独立,每个生命周期中包含一些阶段,各个生命周期中的阶段是有顺序的,后面的阶段依赖于前面的阶段,但是不同的生命周期的阶段是不会相互影响的。maven核心只提供基本的功能,他执行的如mvn clean,mvn package等命令都是通过调用maven插件来实现的,他们分别对应生命周期的不同阶段,这些阶段绑定了相应插件的goal(目标:插件具体实现的功能)。maven有许多内建的插件,并且已默认绑定到了生命周期的各个阶段。

    Phase plugin:goal
    generate-resources plugin:descriptor
    process-resources resources:resources
    compile compiler:compile
    process-test-resources resources:testResources
    test-compile compiler:testCompile
    test surefire:test
    package jar:jar and plugin:addPluginArtifactMetadata
    install install:install
    deploy deploy:deploy
    可以通过在pom.xml将插件的目标绑定到生命周期的具体阶段中去,如果没有指定那么他将会被绑定到默认的阶段(具体是什么阶段需要看插件的文档说明),如果指定了阶段,那么他会覆盖默认的阶段,并且插件的目标可以被绑定到多个阶段上去。
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <id>compile-package-source</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                    <execution>
                        <phase>compile</phase>
                        <id>package-source</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    参考

  • 相关阅读:
    ToastCustomUtil【简单的Toast封装类】【自定义Toast的显示风格】
    ToastMiui【仿MIUI的带有动画的Toast】
    ToastCustom【自定义显示风格的Toast】
    用现实生活的例子解释非对称加密
    对称加密、非对称加密、数字签名、数字证书、SSL是什么
    公钥和私钥:确认过眼神 是对的人
    如何拿到美团offer的
    http无状态和鉴权解决四种方案
    java网络编程-面试题
    Java网络编程面试总结
  • 原文地址:https://www.cnblogs.com/ZiYangZhou/p/11657840.html
Copyright © 2011-2022 走看看