zoukankan      html  css  js  c++  java
  • maven基础

    Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理

    一 约定配置

    Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构

    目录目的
    ${basedir} 存放pom.xml和所有的子目录
    ${basedir}/src/main/java 项目的java源代码
    ${basedir}/src/main/resources 项目的资源,比如说property文件,springmvc.xml
    ${basedir}/src/test/java 项目的测试类,比如说Junit代码
    ${basedir}/src/test/resources 测试用的资源
    ${basedir}/src/main/webapp/WEB-INF web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
    ${basedir}/target 打包输出目录
    ${basedir}/target/classes 编译输出目录
    ${basedir}/target/test-classes 测试编译输出目录
    Test.java Maven只会自动运行符合该命名规则的测试类
    ~/.m2/repository Maven默认的本地仓库目录位置

    二 Maven 的 Snapshot 版本与 Release 版本

    1、Snapshot 版本代表不稳定、尚处于开发中的版本。

    2、Release 版本则代表稳定的版本。

    3、什么情况下该用 SNAPSHOT?

    协同开发时,如果 A 依赖构件 B,由于 B 会更新,B 应该使用 SNAPSHOT 来标识自己。这种做法的必要性可以反证如下:

    • a. 如果 B 不用 SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用。
    • b.如果 B 不用 SNAPSHOT, 但一直使用一个单一的 Release 版本号,那当 B 更新后,A 可能并不会接受到更新。因为 A 所使用的 repository 一般不会频繁更新 release 版本的缓存(即本地 repository),所以B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的 B

    4、 不用 Release 版本,在所有地方都用 SNAPSHOT 版本行不行?     

    不行。正式环境中不得使用 snapshot 版本的库。 比如说,今天你依赖某个 snapshot 版本的第三方库成功构建了自己的应用,明天再构建时可能就会失败,因为今晚第三方可能已经更新了它的 snapshot 库。你再次构建时,Maven 会去远程 repository 下载 snapshot 的最新版本,你构建时用的库就是新的 jar 文件了,这时正确性就很难保证了。

    三 maven 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/xsd/maven-4.0.0.xsd">
        <!--模型版本-->
    <modelVersion>4.0.0</modelVersion> <groupId>com.ccnl</groupId> <artifactId>flinktest</artifactId> <version>1.0-SNAPSHOT</version> </project>

      所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。

    maven以这样的形式存在仓库中 groupid:artifactid:version

    • groupId:所需Jar包的项目名
    • artifactId:所需Jar包的模块名
    • version:所需Jar包的版本号

    四 maven基本命令

    1. -v:查询Maven版本

      本命令用于检查maven是否安装成功。

      Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。

    2. compile:编译

      将java源文件编译成class文件

    3. test:测试项目

      执行test目录下的测试用例

    4. package:打包

      将项目打成jar包

    5. clean:删除target文件夹

    6. install:安装

      将当前项目放到Maven的本地仓库中。供其他项目使用

    五 传递依赖 与 排除依赖

    • 传递依赖:如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和简洁引用的Jar包都下载到本地。
    • 排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml中做如下配置:(将需要排除的Jar包的坐标写在中), 利用<exclusion>
    <exclusions>
        <exclusion>
            <groupId>cn.missbe.web.search</groupId>
            <artifactId>resource-search</artifactId>
            <packaging>pom</packaging>
            <version>1.0-SNAPSHOT</version>
        </exclusion>
    </exclusions>
  • 相关阅读:
    Java中WebService实例
    Sublime Text 3 史上最性感的编辑器
    win2003的IIS無法使用,又一次安裝提示找不到iisadmin.mfl文件
    [Unity3D]Unity3D游戏开发之刀光剑影特效的实现
    fopen()函数
    UML学习(一)类图和对象图
    AfxMessageBox和MessageBox差别
    【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)
    Android自己主动化測试之Monkeyrunner用法及实例
    Java工厂模式
  • 原文地址:https://www.cnblogs.com/linjiaqin/p/11457804.html
Copyright © 2011-2022 走看看