当前位置: 首页 > 软件库 > 开发工具 > 项目构建 >

Apache Maven

项目构建工具
授权协议 Apache
开发语言 Java
所属分类 开发工具、 项目构建
软件类型 开源软件
地区 不详
投 递 者 仲孙俊贤
操作系统 跨平台
开源组织 Apache
适用人群 未知
 软件概览

Maven 是一个流行的 Java 项目构建系统。

目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。

Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven vs Ant

那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,我要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant 代表两个差异很大的工具,所以我将只说明这两个工具的等同组件之间的区别,如表 1 所示。

表 1. Maven vs Ant

  Maven Ant
标准构建文件 project.xml 和 maven.xml build.xml
特性处理顺序
  1. ${maven.home}/bin/driver.properties

  2. ${project.home}/project.properties

  3. ${project.home}/build.properties

  4. ${user.home}/build.properties

  5. 通过 -D 命令行选项定义的系统特性

最后一个定义起决定作用。
  1. 通过 -D 命令行选项定义的系统特性

  2. 由 任务装入的特性

第一个定义最先被处理。
构建规则 构建规则更为动态(类似于编程语言);它们是基于 Jelly 的可执行 XML。 构建规则或多或少是静态的,除非使用

相关开发环境下的Maven插件:http://mevenide.codehaus.org/

  • 以下内容翻译自 Apache Maven 官网. 1 Introduction Maven 是一个软件项目管理工具. 基于 项目对象模型(project object model, POM), Maven 可以 通过一块中央信息 来 管理项目的 构建(build), 报告(reporting) 和 文档(documentation). Maven是一个Yiddish(一种犹太语)词汇,意思是知识的

  • 1、maven-install-plugin <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> 2、maven-repository-plugin <plug

  • 问题描述 程序打包是报错: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project MavenProj1: Compilation failure 解决方法 这通常是jdk版本版本再IDEA上的设置有误导致的,解决这种问题的方法通常有

  • 在Eclipse中导入项目后,POM文件报如下错误。 org.apache.maven.archiver.MavenArchiver .getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) 第一种:出现这个错误可能是新增工作空间是异常退出,修改了

 相关资料
  • 开始 建构流程是整个项目最核心的地方之一,通过我们所熟知的 webpack,完成了 template 转换为 wxml 和 样式转换优化以及其他的若干代码的拼接压缩混淆等操作,最终使之可以运行在微信小程序的环境中。 如果你不了解什么是 webpack, 可以查看 webpack文档 。 用一个图来描述: app.vue & main.js ┌---------┐

  • 主要内容:Eclipse 构建项目Eclipse 构建项目 一个项目可以有零个或多个与之关联的构建器。Java 项目与 Java 构建器相关联。查看与项目相关的构建器 - 在 Package Explorer 视图中,右键单击该项目并选择 Properties。 在左侧树中单击 Builders。 Java 构建器将 Java 项目与其他类型的项目区分开来。通过单击 New 按钮,您可以将 Ant 构建器与 Java 项目相关联。

  • 多项目 通常在一个工程中构建多个项目间会有关联,尤其是它们都依赖一个项目时可以很容易的更新项目 在一个工程中每个子项目都会有自己的源代码目录、生成各自的jar包当执行 package 时. 一个项目通过申明一个 Project 类型的懒值来定义,例如: lazy val util = project lazy val core = project 这个变量值名称将被用来当做 Project Id

  • 简介 每一个活跃的项目会随着时间慢慢增长的,一开始可能只是个很小的项目到后面可能包含很多包和类。为了提高可维护性和解藕的目的,你可能想把项目根据逻辑和功能来划分成一个个模块。模块通常按照等级来组织,相互之间可以定义依赖。 Gradle给项目模块化提供了强大的支持,在Gradle中每个模块都是一个项目,我们称之为多项目构建,这一章介绍Gradle的多项目构建。

  • 上一节我们简要介绍了如何编写一个单机的To Do应用,接下来要打包部署成可执行的应用,我们需要编译源代码,生成的class文件需要打包到JAR文件中。JDK提供了javac 和jar工具帮助你实现这些任务,但是你也不想每次源代码发生变化时你都手动去执行这些任务吧。 Gradle插件能够自动化完成这些任务,插件引入了一些领域特有的观念,其中一个Gradle插件就是java插件,Java插件不仅仅只有

  • 如何用好 GitHub 如何用好 GitHub,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到 CI,再到自动部署. 敏捷软件开发 显然我是在扯淡,这和敏捷软件开发没有什么关系。不过我也不知道瀑布流是怎样的。说说我所知道的一个项目的组成吧: 看板式管理应用程序(如 trello,简单地说就是管理软件功能) CI(持续集成) 测试覆盖率 代码质量(code smell

  • 主要内容:多项目构建的结构,指定常规构建配置,项目指定配置和依赖关系,Gradle多项目构建的示例,子项目配置,参考可以轻松处理各种大小规模的项目。小项目由一个单一的构建文件和一个源代码树构成。 大项目可以将其拆分成更小的,相互依赖的模块,以便更容易理解。Gradle完美支持这种多项目构建的场景。 多项目构建的结构 这种构建有各种形状和大小,但它们都有一些共同的特点 - 在项目的根目录或主目录中都有一个文件。 根目录或主目录都有一个文件。 具有自己的构建文件的子目录(某些多项目构建可能会省略子项

  • 主要内容:Groovy插件,Groovy项目的默认项目布局本章介绍如何使用文件编译和执行Groovy项目。 Groovy插件 Gradle的Groovy插件扩展了Java插件,并为Groovy程序提供了任务。可以使用以下行来应用groovy插件。 完整的构建脚本文件如下。将以下代码复制到文件中。 可以使用以下命令来执行构建脚本。 Groovy项目的默认项目布局 Groovy插件假定Groovy项目有手动做过一定的设置。 包含Groovy源代码; 包含Gr