`

Maven 5 分钟入门教程

阅读更多
Maven 5 分钟入门教程
  • 安装
  • Maven是一个Java工具,所以你得先把Java运行时环境安装好才能继续。
    首先, 下载并安装好Maven,然后按下面的指导一步步执行. 在命令行环境下面输入下面的指令:
    mvn --version

    你应该能看到类似下面这样的一些关于Maven的版本信息:
    Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
    Maven home: D:\apache-maven-3.0.3\bin\..
    Java version: 1.6.0_25, vendor: Sun Microsystems Inc.
    Java home: E:\Program Files\Java\jdk1.6.0_25\jre
    Default locale: nl_NL, platform encoding: Cp1252
    OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
    

    鉴于你的网络配置,你可能需要一些其它的配置,你可以到Apache的官方网站上看更详细的配置。http://maven.apache.org/guides/mini/guide-configuring-maven.html不过入门阶段,默认的配置也就够了。
  • 用命令行创建一个 Project:
  • 找个合适的地方建个文件夹神马的,然后在命令行环境里面cd到这个目录下面来。执行下马的语句。你第一次看不懂不要紧,看着看着你就慢慢的懂了。
    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    如果你刚刚安装Maven,这个命令执行的时间会比较长,因为它会到网上做一些更新,如果你网速不好,那么时间就更久了。所以你就多念几声“阿弥陀佛”,保佑它顺利执行完。如果你人品好的话,那么很快,你就可以在当前文件夹下面看到这么一堆东西了。你可以执行Tree 命令看看生成的目录结构。
    Tree . (仔细看,tree 后面有个小点哦,表示当前目录。)

    my-app
    |-- pom.xml (这个其实是最终于的产物。)
    `-- src
        |-- main
        |   `-- java
        |       `-- com
        |           `-- mycompany
        |               `-- app
        |                   `-- App.java (这个是生存的SourceCode)
        `-- test
            `-- java
                `-- com
                    `-- mycompany
                        `-- app
                            `-- AppTest.java(这个是测试的Code,是不是感觉超牛B,超变态)
    
  • POM配置文件
  • Pom.xml是工程Maven配置文件的核心,它是个包含了主要配置信息的单一文件。通过这个配置文件,你可以安装你想要的方式来编译整个工程。它的复杂性确实有点望而生畏,所以你将来需要花时间去慢慢熟悉它,这样你的工作才能更有效率。
    <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.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>Maven Quick Start Archetype</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.2</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>
  • 刚才这个命令行做了哪些事情?
  • 这个命令行执行了一个Maven的目标任务(goal) archetype:generate, 我们传了很多参数给这个目标任务。前缀archetype 表示一个插件. 插件封装了很多目标任务(goal)。这个概念跟Ant里面的类似。你可以到Apache官网了解更多关于插件的信息。http://maven.apache.org/plugins/index.html这里提供了各种各样的插件来满足不同的需要。每个都够你折腾一段时间。
  • Build the Project
  • cd my-app
    mvn package

    执行这个指令是帮你把项目打包,当然所以打包依赖的任务也都会自动被执行到。这根Ant大同小异。 你可以在控制台看到这样的信息。
     ...
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 seconds
    [INFO] Finished at: Thu Jul 07 21:34:52 CEST 2011
    [INFO] Final Memory: 3M/6M
    [INFO] ------------------------------------------------------------------------
    

    和前面你执行的那个长长的命令行不同(archetype:generate),你可能已经注意到这个命令行很短,后面跟了个参数 package,这个参数和前面不一样,它不是什么插件,也不是什么目标任务。Maven给它起了个新名字(phase),我们暂时翻译成状态。可以理解为项目的一中状态。当你输入这个指令后,Maven帮你做了下面这些事情:
    • 1.validate
    • 2.generate-sources
    • 3.process-sources
    • 4.generate-resources
    • 5.process-resources
    • 6.compile

    执行 Tree . 命令,你可以看到它生存了新的目录。
    ├─src
    │  ├─main
    │  │  └─java
    │  │      └─com
    │  │          └─mycompany
    │  │              └─app
    │  └─test
    │      └─java
    │          └─com
    │              └─mycompany
    │                  └─app
    └─target
        ├─classes
        │  └─com
        │      └─mycompany
        │          └─app
        ├─maven-archiver
        ├─surefire-reports
        └─test-classes
            └─com
                └─mycompany
                    └─app

    其中还打了个jar包 my-app-1.0-SNAPSHOT.jar
  • Maven Phases(Maven 预定义指令)
  • 下面列举了Maven最常用的一些指令
    • validate: validate the project is correct and all necessary information is available
    • compile: compile the source code of the project
    • test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
    • package: take the compiled code and package it in its distributable format, such as a JAR.
    • integration-test: process and deploy the package if necessary into an environment where integration tests can be run
    • verify: run any checks to verify the package is valid and meets quality criteria
    • install: install the package into the local repository, for use as a dependency in other projects locally
    • deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
    • clean: cleans up artifacts created by prior builds
    • site: generates site documentation for this project

    对于上面的这些指令,我们建议你每个都执行一下,看看什么效果。对你了解Maven的功能很有帮助。
  • 生成你的项目站点
  • mvn site

    这个比较有意思,会帮你的Project生存一个站点。
    This phase generates a site based upon information on the project's pom. You can look at the documentation generated under target/site.
    如果你有兴趣的话,可以到官网了解更多的信息。
    http://maven.apache.org/guides/getting-started/index.html
    分享到:
    评论

    相关推荐

      Maven2 5分钟学习教程(中文)----maven2 官方文档翻译

      **Maven 2 5分钟学习教程(中文)——官方文档翻译** Maven是一个强大的Java项目管理工具,它简化了构建、依赖...这篇5分钟学习教程提供了快速入门的基础,深入理解Maven还需要实践和不断探索其丰富的功能和配置选项。

      maven简单实用教程

      Maven的官方网站提供了丰富的学习资源,包括5分钟测试、入门教程、构建指南、POM和settings的参考文档,以及一本名为“Better Builds with Maven”的免费电子书,帮助开发者快速掌握Maven。 3. Maven与Ant的区别 ...

      freemark 概述 教程 5分钟入门 pdf

      这个“Freemarker概述教程5分钟入门pdf”很可能是为初学者设计的快速入门指南,旨在帮助用户在短时间内理解并掌握Freemarker的基本概念和用法。 **Freemarker的核心概念:** 1. **模板(Template)**:模板是...

      java班级管理源码-MavenIn28Minutes:Maven初学者教程和示例

      分钟内的示例 安装 Eclipse 和 Java 课程大纲 我们将使用 Handson Real World 示例来了解 Maven 可以做什么。 我们将了解 Maven 如何使应用程序开发人员的生活变得轻松。 我们将学习 Maven 如何帮助我们自动化编译、...

      apache-maven

      - **Maven 5 分钟入门:** - 简单介绍如何快速上手 Maven,包括安装、创建项目、构建等基本操作。 - **起步指南:** - 提供详细的教程,帮助初学者逐步了解 Maven 的工作原理和最佳实践。 - **POM 参考:** - ...

      jenkins基础使用教程

      Jenkins 基础使用教程 Jenkins 是一个功能强大且广泛使用的自动构建工具,它可以帮助开发者自动化构建、测试和部署应用程序。在这篇教程中,我们将学习如何配置 Jenkins,使用 Maven 进行项目构建。 Jenkins 的...

      ApacheShiro10分钟入门教程

      在10分钟的入门教程中,首先你需要确保安装了JDK 1.6+和Maven 3.0.3+。然后,你可以从Apache Shiro的下载页面获取最新版本的源码包,解压缩后进入`quickstart`目录。运行`mvn compile exec:java`命令,Maven会编译...

      translation:翻译文档

      12.0 MAVEN基础系列(〇)Maven五分钟入门教程【粗翻】 12.1 MAVEN基础系列(一)项目构建的各个阶段【粗翻】 12.2 MAVEN基础系列(二)POM文件【粗翻】 13.诊断问题和排查故障非常难?【已完成】 14.JVM性能指标...

      MyEclipse开发教程 完整版 pdf

      - **Eclipse**:作为开源基础,Eclipse提供了基本的Java开发环境,而MyEclipse在此基础上增加了更多的功能和插件。 - **IntelliJ IDEA**:另一款流行的Java IDE,相比MyEclipse,IntelliJ IDEA在智能代码补全、重构...

      基于Storm本地集群搭建实时统计CallLog实现可运行

      Java是Storm的运行基础,而Maven则是Java项目管理工具,用于管理依赖库。 2. **创建Maven项目**:使用Maven的archetype插件创建一个新的Storm项目。在命令行中运行: ``` mvn archetype:generate -DgroupId=...

      eclips视频教学9h10.rar

      通过这个9小时10分钟的教程,学习者将逐步深入Eclipse的各项功能,从基础操作到高级应用,掌握如何使用Eclipse开发简单软件,为更复杂的项目开发打下坚实基础。同时,由于上传者的提示,可能每个压缩包包含的视频时...

      支付宝WEB版-java接入教程.zip

      提供的链接“3分钟学会接入支付宝,阿里就是土豪,当场送9万块_哔哩哔哩 (゜-゜)つロ 干杯--bilibili.url”是一个视频教程,可以帮助开发者更直观地了解接入过程,提供实际操作的指导。 通过以上步骤,开发者可以...

      struts2入门级,简单易学,加demo

      本教程针对初学者,特别是那些已经具备Java基础的开发者,通过一个简单的Demo,让你在20分钟内快速上手Struts2。 首先,了解Struts2的基本架构是非常重要的。Struts2的核心是Action类,它是业务逻辑的载体。当用户...

      jbpm6.0 入门(很有权威)

      - **10 分钟教程**:使用 jBPM 控制台的快速入门教程。 - **集成 Eclipse 和 Web 工具**:设置 Eclipse 和 Web 工具之间的集成。 ##### 3.4 使用自定义数据库 如果需要使用非默认数据库,需要进行额外的配置。 - ...

      Android快速SDK(21)免费短信验证码库MobSms【肌肉记忆,分钟接入】

      本教程将深入探讨如何使用MobSms这个免费的短信验证码库,帮助开发者在短短几分钟内实现快速集成。 MobSms是一款专门为Android平台设计的免费短信验证码SDK,它提供了简单易用的API接口,使得开发者能够快速地在...

      Spring Roo - Reference Documentation

      Spring Roo的教程涵盖了从基础概念到高级应用的各个方面,旨在帮助开发者全面了解框架的功能和最佳实践。无论是希望快速上手的初学者,还是寻求深入优化的专业人士,都能从中找到适合自己的学习路径。 #### 2.2 ...

      JBPM5_用户指南

      - **使用教程**:提供了10分钟的快速入门指南,帮助用户快速上手。 #### 四、核心引擎API详解 - **jBPM API**: - **KnowledgeBase**:用于存储流程定义和其他知识资产。 - **会话**:提供执行流程、管理实例等...

      快速入门Spring Cloud Alibaba AI,搭建大模型,快速上手大模型

      - 教程详细步骤可参考:[快速入门指南](https://sca.aliyun.com/docs/2023/user-guide/ai/quick-start/) - 示例代码可从GitHub仓库下载:[GitHub仓库链接]...

      vanillacore:VanillaDB的核心引擎

      本教程将教您如何启动数据库服务器并与之交互。 编译源并将其打包到jar中 这个项目是一个Maven项目。 您可以使用Maven通过一个命令来编译源代码并将类打包到jar文件中: (请注意,此命令还会触发测试阶段,该阶段...

    Global site tag (gtag.js) - Google Analytics