我正在尝试将我的springboot
教程项目与CircleCi集成。
我的项目在Github存储库内的子目录中,我从CircleCi中收到以下错误。
目标需要执行一个项目,但此项目中没有POM目录(/ home / circleci / recipe)。请验证您是否调用了Maven从正确的目录中。
我不知道如何告诉circle-ci我的项目在子目录中。我已经尝试了几件事,并且尝试在[recipe]内尝试cd
,但它不起作用甚至感觉不正确。
这是我的项目的结构:
Spring-tutorials
|
+-- projectA
|
+-- recipe
| | +--pom.xml
这里是我的config.yml
# Java Maven CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-java/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/openjdk:8-jdk
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/postgres:9.4
working_directory: ~/recipe
environment:
# Customize the JVM maximum heap limit
MAVEN_OPTS: -Xmx3200m
steps:
- checkout
- run: cd recipe/; ls -la; pwd;
# Download and cache dependencies
- restore_cache:
keys:
- recipe-{{ checksum "pom.xml" }}
# fallback to using the latest cache if no exact match is found
- recipe-
- run: cd recipe; mvn dependency:go-offline
- save_cache:
paths:
- ~/recipe/.m2
key: recipe-{{ checksum "pom.xml" }}
# run tests!
- run: mvn integration-test
我设法解决了这个问题。相信
的组合 working_directory: ~/spring-tutorial/recipe
和
- checkout:
path: ~/spring-tutorial
使其生效。
这是我的工作config.yml
:
# Java Maven CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-java/ for more details
#
version: 2
jobs:
build:
working_directory: ~/spring-tutorial/recipe
docker:
# specify the version you desire here
- image: circleci/openjdk:8-jdk
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/postgres:9.4
environment:
# Customize the JVM maximum heap limit
MAVEN_OPTS: -Xmx3200m
steps:
- checkout:
path: ~/spring-tutorial
# Download and cache dependencies
- restore_cache:
keys:
- recipe-{{ checksum "pom.xml" }}
# fallback to using the latest cache if no exact match is found
- recipe-
- run: mvn dependency:go-offline
- save_cache:
paths:
- ~/.m2
key: recipe-{{ checksum "pom.xml" }}
# run tests!
- run: mvn integration-test
我有点困惑,所以我想进一步澄清
用于构建子目录以定义您的工作空间的关键解决方案,在这种情况下,是其子文件夹,因此它将像这样进行定义
working_directory: ~/repo/sub_folder
和结帐到
- checkout:
path: ~/repo
要这样
# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/node:7.10
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mongo:3.4.4
working_directory: ~/repo/sub_folder
steps:
- checkout:
path: ~/repo
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
# run tests!
- run: npm test
[如果有人尝试运行npm命令并且cd
未能按预期工作,即:
cd subdir && npm run command
您可以使用npm的--prefix
选项。
- run:
name: Run start command in recipe folder
command: npm --prefix ./recipe run start
# then in same file
- run:
name: Run test command in app folder
command: npm --prefix ./app run test