当前位置: 首页 > 知识库问答 >
问题:

JAVA项目上带有合并请求和多个模块的Gitlab CI问题

堵雅健
2023-03-14

如果我像下面这样提交和推送,我对Gitlab CI管道有问题。我的管道运行构建,测试我修改的模块,但是合并管道后运行包并部署所有模块,即使这些模块在存储库中没有任何新内容。

罗伯

.gitlab-ci.yml

variables:
  MAVEN_OPTS: "-Dmaven.repo.local=.m2"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"

cache:
  paths:
    - /root/.m2/

stages:
  - build
  - test
  - package
  - deploy

include:
  - local: root/.gitlab-ci.yml
  - local: abreg/.gitlab-ci.yml

.build-module:
  stage: build
  script:
    - echo "Building $MODULE"
    - mvn -pl $MODULE clean compile --also-make
  artifacts:
    expire_in: 10 min
    paths:
      - "*/target"

.test-module:
  stage: test
  script:
    - echo "Testing $MODULE"
    - mvn $MAVEN_CLI_OPTS -pl $MODULE test --also-make

.package-module:
  stage: package
  script:
    - echo "Packing $MODULE "
    - mvn -pl $MODULE package -U --also-make
  artifacts:
     expire_in: 10 min
     paths:
       - "*/target/*.war"
  only:
    - merge_requests

.deploy-module:
  stage: deploy
  before_script:
    - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan 172.18.0.23 >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
   - scp -o StrictHostKeyChecking=no */target/*.war root@172.18.0.23:/test
  only:
    - merge_requests

#BUILD JOBS

build-root-module:
  extends:
    - .root-module
    - .build-module

build-abreg-module:
  extends:
    - .abreg-module
    - .build-module

#TEST JOBS

test-root-module:
  extends:
    - .root-module
    - .test-module

test-abreg-module:
  extends:
    - .abreg-module
    - .test-module

#PACKAGE JOBS

package-root-module:
  extends:
    - .root-module
    - .package-module

package-abreg-module:
  extends:
    - .abreg-module
    - .package-module

#DEPLOY JOBS

deploy-root-module:
  extends:
    - .root-module
    - .deploy-module

deploy-abreg-module:
  extends:
    - .abreg-module
    - .deploy-module

在根模块中。gitlab ci。yml

.root-module:
  variables:
    MODULE: "root"
  only:
    changes:
      - "root/**/*"

在abreg模块中。gitlab ci。yml

.abreg-module:
  variables:
    MODULE: "abreg"
  only:
    changes:
      - "abreg/**/*"

我如何修改我的密码。gitlab ci。yml文件到achive管道,它只运行这些我确实更改过的模块?

共有1个答案

华星驰
2023-03-14

我解决了我的问题。只添加引用。

 类似资料:
  • MyApp和MyAppCore有自己的AppComponent,MyApp提供ViewModel工厂,MyAppCore提供数据库和网络访问工厂(下面的示例)。 我不确定如何链接AppComponent(或应用程序),以便在MyApp中提供数据库和网络访问。以下是我目前掌握的信息: MyAppCore模块 MyAppCore还具有名为的Room数据库实现和接口(我认为我不需要在这个问题中添加此代码

  • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

  • null null 的POM: 的POM:http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0 此项目成功地从顶部编译,但运行失败:

  • 我最近开始学习java处理器,并尝试将它们与gradle一起使用,当我构建项目时,我可以看到注释处理器JAR(其他模块)被打印出来(我在app gradle文件中添加了这一点,您可以在下面看到),但没有执行。我不知道我做错了什么...

  • 我设计了一个maven多模块项目,就像下面这个帖子的第一个答案:Multi-module maven with Spring Boot 现在我想要一个通用的maven模块,它可以包含一些供多个微服务使用的模型。如果我将这个公共项目作为第一级父pom的子项目(这样所有由引导注入的依赖项(如jpa、jackson等)都可用于公共项目),那么STS/Spring将它检测为引导应用程序,并抱怨maven

  • 问题内容: 简短,简单的介绍了出色的Python 请求模块。 我似乎在文档中找不到变量“代理”应包含的内容。当我发送带有标准“ IP:PORT”值的字典时,它拒绝要求2个值。所以,我猜(因为文档中似乎没有涵盖),第一个值是ip,第二个值是端口? 文档只提到了这一点: 代理–(可选)字典到代理URL的映射协议。 所以我尝试了这个……我该怎么办? 在将它们放入字典之前,我应该将它们转换为某种类型吗?