“运行”;“mvn清洁安装”;使用ansible模块的maven命令

“运行”;“mvn清洁安装”;使用ansible模块的maven命令,maven,docker,ansible,Maven,Docker,Ansible,我正在尝试为我的项目实现CI/CD管道。我用的是Ansible、Docker和jenkins。SVN签出、映像docker映像构建、映像推送到Dockerhub、拉入和部署等每个阶段都计划使用ansible角色完成。现在,我使用ansible模块成功实现了示例SVN签出、映像构建和推入以及docker映像部署 我使用的是Maven构建工具,所以在这里我有点困惑,在从svn存储库中签出之后,我需要使用ansible运行“mvn clean install”。不,我想找一个可解的模。但我并没有得到一

我正在尝试为我的项目实现CI/CD管道。我用的是Ansible、Docker和jenkins。SVN签出、映像docker映像构建、映像推送到Dockerhub、拉入和部署等每个阶段都计划使用ansible角色完成。现在,我使用ansible模块成功实现了示例SVN签出、映像构建和推入以及docker映像部署


我使用的是Maven构建工具,所以在这里我有点困惑,在从svn存储库中签出之后,我需要使用ansible运行“mvn clean install”。不,我想找一个可解的模。但我并没有得到一个简单的模块。要做到这一点,有没有像docker_image和svn这样的maven的ansible模块?如何使用ansible角色运行maven命令

如果找不到特定任务的模块,则有两个选项:

  • 用Python编写自己的。将它们放入角色或剧本的“library/”目录中
  • 使用
    命令
    shell
    模块执行所需的行为

  • 有些系统过于复杂,无法快速实现为ansible模块,然而,如果您找不到任何适用于maven的ansible插件,则通常很容易使用其CLI。

    。您可以使用shell模块来实现这一点。 以下是一个例子:

      - name: Running mvn clean
        shell: "mvn clean install"
        register: mvn_result
    
      - name: "mvn clean task output"
        debug:
         var: mvn_result
    

    我有类似的情况,我必须下载源代码(从git)并将编译结果(JavaJAR)安装到本地Maven存储库中

    虽然Maven没有Ansible模块,但是使用
    命令编写功能实际上是一个非常简单的过程。我使用以下任务,其中仅当repo的本地克隆已更改时才运行Maven

    - name: "source code : download"
      register: source_code_clones
      git:
        repo: ssh://git@somewhere.invalid/projects/{{ item }}.git
        dest: "{{ repodir }}/{{ item }}"
        version: master
        depth: 1
      with_items:
      - project1
      - project2
      - project3
    
    # - debug:
    #     msg: "{{ item }}"
    #   with_items: "{{ source_code_clones.results }}"
    
    - name: "source code : local install"
      when: item.changed
      command: mvn --batch-mode --quiet install
      args:
         chdir: "{{ repodir }}/{{ item.item }}"
      with_items: "{{ source_code_clones.results }}"
    
    有一页;即使没有专门的
    mvn安装
    模块,您也可以随时使用该模块执行任何需要的操作。