gantsign.maven

Ansible 角色:Maven

测试 Ansible Galaxy 许可证

用于安装Apache Maven构建工具的角色。

要求

  • Ansible Core >= 2.12

  • Linux 发行版

    • Debian 系列

      • Debian

        • Buster (10)
        • Bullseye (11)
      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • RedHat 系列

      • Rocky Linux

        • 8
      • Fedora

        • 34
    • SUSE 系列

      • openSUSE

        • 15.2
    • 注意:其他版本可能有效,但未经过测试。

  • Java SE 开发工具包 (JDK)

    • 所需的 JDK 版本取决于 Apache Maven 版本

      Maven 版本 最低 JDK 版本
      3.9.x 8
      3.8.x 7
      3.6.x 7
      3.5.x 7
      3.3.x 7
      3.2.x 6
      3.1.x 5

角色变量

以下变量将改变此角色的行为(默认值如下所示):

# Maven 版本号
maven_version: '3.9.4'

# 下载 Maven 重分发包的镜像地址
maven_mirror: "http://archive.apache.org/dist/maven/maven-{{ maven_version|regex_replace('\\..*', '') }}/{{ maven_version }}/binaries"

# Maven 分发版的基础安装目录
maven_install_dir: /opt/maven

# 存储 Maven 安装下载文件的目录
maven_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

# 下载 Maven 时的超时等待秒数
maven_download_timeout: 10

# 下载 Maven 时是否使用代理(如果代理环境变量存在)
maven_use_proxy: true

# 下载 Maven 时是否验证 HTTPS 证书
maven_validate_certs: true

# 如果这是默认安装,将在 /usr/local/bin 创建到 mvn 和 mvnDebug 的符号链接
maven_is_default_installation: true

# 与此 Maven 安装相关的 Ansible facts 组的名称。
#
# 如果想使用此角色多次安装多个版本的 Maven,请覆盖设置。
#
# 例如:maven_fact_group_name: maven_3_3
# 将改变 Maven home fact 为:
# ansible_local.maven_3_2.general.home
maven_fact_group_name: maven

支持的 Maven 版本

以下版本的 Maven 在没有额外配置的情况下受支持(对于其他版本,请遵循高级配置说明):

  • 3.9.4
  • 3.9.3
  • 3.9.2
  • 3.9.1
  • 3.9.0
  • 3.8.8
  • 3.8.7
  • 3.8.6
  • 3.8.5
  • 3.8.4
  • 3.8.3
  • 3.8.2
  • 3.8.1
  • 3.6.3
  • 3.6.2
  • 3.6.1
  • 3.6.0
  • 3.5.4
  • 3.5.3
  • 3.5.2
  • 3.5.0
  • 3.3.9
  • 3.2.5
  • 3.1.1

高级配置

以下角色变量取决于 Maven 版本;要使用未由此角色预配置的 Maven 版本,必须配置以下变量:

# 用于重分发包的 SHA256 校验和(即 apache-maven-{{ maven_version }}-bin.tar.gz)
maven_redis_sha256sum: '6e3e9c949ab4695a204f74038717aa7b2689b1be94875899ac1b3fe42800ff82'

示例剧本

此角色默认将安装此角色支持的最新版本的 Maven:

- hosts: servers
  roles:
    - role: gantsign.maven

您可以通过指定 maven_version 来安装特定版本的 Maven(注意:如果该版本不受此角色当前支持,则需要进行额外配置 - 请参见高级配置):

- hosts: servers
  roles:
    - role: gantsign.maven
      maven_version: '3.3.9'

您可以通过多次使用此角色安装多个版本的 Maven:

- hosts: servers
  roles:
    - role: gantsign.maven
      maven_version: '3.3.9'
      maven_is_default_installation: true
      maven_fact_group_name: maven

    - role: gantsign.maven
      maven_version: '3.2.5'
      maven_is_default_installation: false
      maven_fact_group_name: maven_3_2

角色事实

此角色导出以下 Ansible facts 供其他角色使用:

  • ansible_local.maven.general.version

    • 例如 3.3.9
  • ansible_local.maven.general.home

    • 例如 /opt/maven/apache-maven-3.3.9

覆盖 maven_fact_group_name 将更改事实的名称,例如:

maven_fact_group_name: maven_3_2

将把事实的名称更改为:

  • ansible_local.maven_3_2.general.version
  • ansible_local.maven_3_2.general.home

相关角色

您可能会发现以下相关角色有用:

GantSign 的更多角色

您可以在 Ansible Galaxy 找到更多 GantSign 角色。

开发与测试

此项目使用以下工具:

  • Molecule 用于组织测试场景
  • Testinfra 用于测试远程的更改
  • pytest 测试框架
  • Tox 管理 Python 虚拟环境用于代码检查和测试
  • pip-tools 用于管理依赖关系

提供了 Visual Studio Code 的Dev Container以便开发和测试此角色。

许可证

MIT

作者信息

约翰·弗里曼

GantSign 有限公司 公司编号:06109112(在英格兰注册)

关于项目

Role for installing Apache Maven.

安装
ansible-galaxy install gantsign.maven
许可证
mit
下载
304.7k
拥有者