Apache Maven:基本指南
#braziliandevs #java #maven

tl; dr

Apache Maven是用于软件的强大设计管理工具,用于构建项目,依赖和文档。本文探讨了Maven的故事,其实用性以及其创建的原因以及周期的运作。它还包括一个来自接收字符串并在屏幕上返回哈希的简单插件编码的示例。

什么是Apache Maven?

Apache Maven是一种软件项目管理工具,专注于自动化和理解。基于项目对象模型(POM)的概念,Maven可以管理中央信息中的项目的构建,报告和文档。

为什么创建了Maven?

Maven诞生了,需要简化雅加达涡轮机构建设项目的过程。大多数项目都有几乎是想法的编译脚本,这导致了一组常见脚本的发展。随着时间的流逝,对更全面的建筑和项目管理系统的需求变得显而易见,因此Maven诞生了。

小牛的历史

Maven的第一个版本于2004年7月推出,作为Apache软件基金会的一个项目。从入口开始,它已经显着发展,Versatage 2.0于2005年10月推出,引入了建筑的巨大变化,以解决1.x的徒劳结构问题。 Versatile 3.0于2010年10月推出,重点介绍了可用性和性能。

小男人的生命周期

Apache Maven组织了围绕编译生命周期概念的编译过程,这是一个有序的相序。每个阶段代表生命周期的财产,例如编译,测试,包装,安装等。

在Maven中的阶段或阶段是建筑生命周期的一步。例如,编译阶段对项目的源进行编译,测试阶段使用合适的测试框架进行编译代码,包装阶段以可分配的格式(例如JAR,WAR等)采用编译的代码和包装。

这是Maven中的一些标准阶段:

标准施工生命周期。
  • validate:验证是否可以使用所有必要的信息。 编译:编译项目源代码。
  • test:使用合适的测试框架测试编译的源代码。
  • package:以可分配格式(例如jar,war等)采用编译和包装。
  • verify:执行验证以确保包裹徒劳并符合优质的批评家。
  • install:将软件包安装在本地重新定位中,以依赖于其他本地项目。
  • deploy:复制最终包装以与其他开发人员和项目共享远程重新定位。

目标或目标是插件执行的任务。每个插件都可以具有一个或多个目标,并且每个目标都是针对特定任务的负责。例如,compiler插件具有目标compiletestCompile,分别用于编译源和测试。

阶段和目标之间的关系是,当阶段通过命令行调用阶段(例如,mvn install)时,与此阶段链接的所有目标均以顺序执行。>>>>>>>

为什么Maven在软件开发中很重要?

Maven简化并标准化了建立项目的过程。他照顾诸如编译,分销,文档,团队协作和其他项目管理任务等任务。

Maven管理依赖性并验证库的不同版本之间的兼容性,从而降低了版本冲突的风险。它还支持与Git和SVN等版本控制工具集成,从而促进了来源的管理。

编码一个简单的插件

这是如何编码接收字符串并在屏幕上返回哈希的简单插件的示例。该插件将使用SHA-236算法来创建哈希。

package com.example;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.security.MessageDigest;

/**
 * @goal displayhash
 */
public class HashMojo extends AbstractMojo
{
    /**
     * @parameter property="msg"
     * @required
     */
    private String msg;

    public void execute() throws MojoExecutionException
    {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-256");
            byte[] hash = digest.digest(msg.getBytes("UTF-8"));
            getLog().info(bytesToHex(hash));
        } catch(Exception ex) {
            throw new MojoExecutionException("Error creating hash", ex);
        }
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuffer result = new StringBuffer();
        for (byte b : bytes) {
            result.append(String.format("%02x", b));
        }
        return result.toString();
    }
}

要使用此插件,您需要添加到pom.xml文件:

<build>
  <plugins>
    <plugin>
      <groupId>com.example</groupId>
      <artifactId>myplugin</artifactId>
      <version>1.0-SNAPSHOT</version>
      <executions>
        <execution>
          <phase>install</phase>
          <goals>
            <goal>displayhash</goal>
          </goals>
          <configuration>
            <msg>MinhaMensagem</msg>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

运行mvn install时,Maven将计算“ Mymensage” Hash SHA-236并将其显示在控制台上。

包括£o

Apache Maven是一种强大而灵活的项目管理工具。从项目构建到文档,它简化了软件开发的许多方面。 Maven具有创建自定义插件的能力,可以适应各种软件开发需求。

反思

  1. Apache Maven项目。 (2021)。构建生命周期简介。 disponãvelem:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

  2. Apache Maven项目。 (2021)。开发Java插件的指南。 disponãvelem:https://maven.apache.org/guides/plugin/guide-java-plugin-development.html