zoukankan      html  css  js  c++  java
  • maven

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
    Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
    Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

    特点

    编辑
    那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,首先要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant代表两个差异很大的工具,所以接下来只说明这两个工具的等同组件之间的区别
      Maven Ant
    标准构建文件 project.xml 和 maven.xml build.xml
    特性处理顺序
    ${maven.home}/bin/driver.properties
    ${project.home}/project.properties
    ${project.home}/build.properties
    ${user.home}/build.properties
    通过 -D 命令行选项定义的系统特性
    最后一个定义起决定作用。
    通过 -D 命令行选项定义的系统特性
    由 任务装入的特性
    第一个定义最先被处理。
    构建规则 构建规则更为动态(类似于编程语言);它们是基于 Jelly 的可执行 XML。 构建规则或多或少是静态的,除非使用<script>任务
    扩展语言 插件是用 Jelly(XML)编写的。 插件是用 Java 语言编写的。
    构建规则可扩展性 通过定义 <preGoal> 和 <postGoal> 使构建 goal 可扩展。 构建规则不易扩展;可通过使用 <script> 任务模拟 <preGoal> 和 <postGoal> 所起的作用。

    常用命令

    编辑
    mvn archetype:generate 创建Maven项目
    mvn compile 编译源代码
    mvn deploy 发布项目
    mvn test-compile 编译测试源代码
    mvn test 运行应用程序中的单元测试
    mvn site 生成项目相关信息的网站
    mvn clean 清除项目目录中的生成结果
    mvn package 根据项目生成的jar
    mvn install 在本地Repository中安装jar
    mvn eclipse:eclipse 生成eclipse项目文件
    mvnjetty:run 启动jetty服务
    mvntomcat:run 启动tomcat服务
    mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类
     
    例如:添加大家常用的Struts Jar包
     
     
     
     
     
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.0.11</version>
    </dependency>

    生命周期

    编辑
    Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。
    clean(清理)
    cleanup(清理所有)
    此生命周期旨在给工程做清理工作,它主要包含以下阶段:
    pre-clean - 执行项目清理前所需要的工作。
    clean - 清理上一次build项目生成的文件。
    post-clean - 执行完成项目清理所需的工作.
    default(默认)
    validate - 验证项目是否正确且所有必要的信息都可用。
    initialize - 初始化构建工作,如:设置参数,创建目录等。
    generate-sources - 为包含在编译范围内的代码生成源代码.
    process-sources - 处理源代码, 如过滤值.
    generate-resources -
    process-resources - 复制并处理资源文件,至目标目录,准备打包。
    compile - 编译项目中的源代码.
    process-classes - 为编译生成的文件做后期工作, 例如做Java类的字节码增强.
    generate-test-sources - 为编译内容生成测试源代码.
    process-test-sources - 处理测试源代码。
    generate-test-resources -
    process-test-resources - 复制并处理资源文件,至目标测试目录。
    test-compile - 将需测试源代码编译到路径。一般来说,是编译/src/test/java目录下的java文件至目标输出的测试classpath目录中。
    process-test-classes -
    test - 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
    prepare-package -
    package - 接受编译好的代码,打包成可发布的格式,如 JAR 。
    pre-integration-test -
    integration-test - 按需求将发布包部署到运行环境。
    post-integration-test -
    verify -
    install -将包安装到本地仓库,给其他本地引用提供依赖。
    deploy -完成集成和发布工作,将最终包复制到远程仓库以便分享给其他开发人员。
    site(站点)
    pre-site - 执行一些生成项目站点前的准备工作。
    site - 生成项目站点的文档。
    post-site - 执行需完成站点生成的工作,如站点部署的准备工作。
    site-deploy - 向制定的web服务器部署站点生成文件。
    Maven生命周期参考:Apache Maven Project
     

    maven  安装

     ①:Maven的安装 解压就安装 路径:(选择自己的所放的路径:)比如:D:mavenapache-maven-3.3.9

    ​ ②:配置环境变量

    ​ 电脑右键属性----》 高级系统设置-----》 环境变量---》新建(下部分)

    ​ -----》MAVEN-HOME 值:(选择自己的所放的路径)D:mavenapache-maven-3.3.9

    ​ -----》点击PATH----->新建/编辑 %MAVEN-HOME%in;

     

  • 相关阅读:
    Java
    Spring
    Q&A
    Q&A
    Q&A
    Spring
    Elasticsearch部署及基本概念
    rust(二) 变量及类型
    rust(一) 一些命令
    vim笔记
  • 原文地址:https://www.cnblogs.com/mpenghao/p/11285389.html
Copyright © 2011-2022 走看看