如果我像下面这样提交和推送,我对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管道,它只运行这些我确实更改过的模块?
我解决了我的问题。只添加引用。
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的映射协议。 所以我尝试了这个……我该怎么办? 在将它们放入字典之前,我应该将它们转换为某种类型吗?