Apache Maven

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Apache Maven
File:Apache Maven logo.svg
开发者Apache软件基金会
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    编程语言Java
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统跨平台
      类型构建自动化
      许可协议Apache许可证 2.0
      网站maven.apache.org(英文)
      File:Maven repository artifact growth.png
      Maven中心仓库中的组建数目呈指数级增长

      Apache Maven,是一个软件(特别是Java软件)项目管理自动构建工具,由Apache软件基金会所提供。Maven也可被用于构建和管理各种项目,例如C#RubyScala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。

      Maven解决了软件构建的两方面问题:一是软件是如何构建的,二是软件的依赖关系。不同于Apache Ant等早期工具,Maven设置了构建流程的标准,在此之外只需要指定例外情况。XML文件描述了正在构建的软件项目、它对其他外部模块和组件的依赖关系、构建顺序、目录和所需的插件。该文件通常有预设的目标任务,例如代码编译和打包。Maven从一个或多个代码仓库(例如Maven 2 Central Repository)动态地下载Java库与Maven插件,并将其存储在本地缓存区中[1]

      Maven是以基于插件的架构构建的,这使其能够使用任何能用标准输入控制的应用程序。Maven 2同时维护了为C/C++准备的原生插件[2]

      尽管Gradlesbt等替代技术并不依赖于XML,但他们仍然保留了Maven引入的关键概念。Apache Ivy还开发了一个专用的依赖管理器,同时支持Maven仓库[3]

      Apache Maven也包括对可重现构建的支持[4][5]

      示例[编辑]

      Maven项目使用项目对象模型(Project Object Model,POM)来配置。

      项目对象模型存储在名为 pom.xml 的文件中。

      以下是一个简单的示例:

      <project>
        <!-- model version is always 4.0.0 for Maven 2.x POMs -->
        <modelVersion>4.0.0</modelVersion>
        
        <!-- project coordinates, i.e. a group of values which
             uniquely identify this project -->
        
        <groupId>com.mycompany.app</groupId>
        <artifactId>my-app</artifactId>
        <version>1.0</version>
      
        <!-- library dependencies -->
        
        <dependencies>
          <dependency>
          
            <!-- coordinates of the required library -->
            
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            
            <!-- this dependency is only used for running and compiling tests -->
            
            <scope>test</scope>
            
          </dependency>
        </dependencies>
      </project>
      

      参见[编辑]

      补充阅读[编辑]

      • Van Zyl, Jason, Maven:明确的指南 first, 奥莱利: 468, 2008-10-01 [2011-07-24], ISBN 0596517335, (原始内容存档于2010-08-27) (英文)
      有免费的PDF供下载和在线阅读:http://www.sonatype.com/documentation/books(页面存档备份,存于互联网档案馆(英文)

      参考资料[编辑]

      1. ^ Index of /maven2/. [2009-04-15]. (原始内容存档于2018-09-17). 
      2. ^ Laugstol, Trygve. MojoHaus Native Maven Plugin. [2022-07-26]. (原始内容存档于2016-10-29). 
      3. ^ IBiblio Resolver | Apache Ivy™. [2022-07-26]. (原始内容存档于2021-06-16). 
      4. ^ Reproducible/Verifiable Builds - Apache Maven - Apache Software Foundation. cwiki.apache.org. [2022-07-26]. (原始内容存档于2022-07-26). 
      5. ^ Reproducible Builds in Java - DZone Java. dzone.com. [2022-07-26]. (原始内容存档于2021-05-06). 

      外部链接[编辑]