Drone 无法编译 Maven 测试 类
Drone can't compile Maven test classes
我有 Drone 的本地实例 运行 并且正在尝试构建几个非常简单的 Maven 项目。它们完全正常并遵循所有约定。
我正在使用最新的 Drone docker 图像(截至今天),并在 Rancher 环境中设置了代理和服务器。本地 Gogs 实例是 Git 存储库。
当 Drone 运行构建时,Maven 无法编译测试 类,因为它找不到编译源 类。它发生在两个不同的项目上,使用以下方法编译没有问题:
- 在 Maven 的命令行上
- 在 IntelliJ 中
- 运行 Docker maven 映像,同时挂载项目目录并以这种方式执行构建。
只有 Drone 构建失败了。我很难过。有人有什么想法吗?
这是.drone.yml
pipeline:
build:
image: maven:3.5.0-alpine
commands:
- mvn -B clean package
这是一些示例输出:
[INFO] Compiling 8 source files to /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/target/classes
109s
836
[INFO]
110s
837
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ springboot-docker-clean ---
110s
838
[INFO] Using 'UTF-8' encoding to copy filtered resources.
110s
839
[INFO] skip non existing resourceDirectory /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/src/test/resources
110s
840
[INFO]
110s
841
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ springboot-docker-clean ---
110s
842
[INFO] Changes detected - recompiling the module!
110s
843
[INFO] Compiling 7 source files to /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/target/test-classes
110s
844
[INFO] -------------------------------------------------------------
112s
845
[ERROR] COMPILATION ERROR :
112s
846
[INFO] -------------------------------------------------------------
112s
847
[ERROR] /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/src/test/java/org/timw/docker/DockerJavaClientTest.java:[31,13] cannot find symbol
112s
848
symbol: class DockerJavaClient
112s
849
location: class org.timw.docker.DockerJavaClientTest
问题是 drone 在工作区路径中使用了您的存储库 url。在您的示例中,存储库 url 包含端口名称(冒号),这似乎在 Maven 尝试读取文件时引起问题。
/drone/src/192.168.1.116:10080
您可以使用以下语法手动覆盖 yaml 中的工作区路径:
workspace:
path: src/timw/springboot-docker-clean
pipeline:
build:
image: maven:3.5.0-alpine
commands:
- mvn -B clean package
我有 Drone 的本地实例 运行 并且正在尝试构建几个非常简单的 Maven 项目。它们完全正常并遵循所有约定。
我正在使用最新的 Drone docker 图像(截至今天),并在 Rancher 环境中设置了代理和服务器。本地 Gogs 实例是 Git 存储库。
当 Drone 运行构建时,Maven 无法编译测试 类,因为它找不到编译源 类。它发生在两个不同的项目上,使用以下方法编译没有问题:
- 在 Maven 的命令行上
- 在 IntelliJ 中
- 运行 Docker maven 映像,同时挂载项目目录并以这种方式执行构建。
只有 Drone 构建失败了。我很难过。有人有什么想法吗?
这是.drone.yml
pipeline:
build:
image: maven:3.5.0-alpine
commands:
- mvn -B clean package
这是一些示例输出:
[INFO] Compiling 8 source files to /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/target/classes
109s
836
[INFO]
110s
837
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ springboot-docker-clean ---
110s
838
[INFO] Using 'UTF-8' encoding to copy filtered resources.
110s
839
[INFO] skip non existing resourceDirectory /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/src/test/resources
110s
840
[INFO]
110s
841
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ springboot-docker-clean ---
110s
842
[INFO] Changes detected - recompiling the module!
110s
843
[INFO] Compiling 7 source files to /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/target/test-classes
110s
844
[INFO] -------------------------------------------------------------
112s
845
[ERROR] COMPILATION ERROR :
112s
846
[INFO] -------------------------------------------------------------
112s
847
[ERROR] /drone/src/192.168.1.116:10080/timw/springboot-docker-clean/compare/458b3364de013c475723da83162368bacf6ba239...fd89653daf594250d11f8cba004939b7a95199f6/src/test/java/org/timw/docker/DockerJavaClientTest.java:[31,13] cannot find symbol
112s
848
symbol: class DockerJavaClient
112s
849
location: class org.timw.docker.DockerJavaClientTest
问题是 drone 在工作区路径中使用了您的存储库 url。在您的示例中,存储库 url 包含端口名称(冒号),这似乎在 Maven 尝试读取文件时引起问题。
/drone/src/192.168.1.116:10080
您可以使用以下语法手动覆盖 yaml 中的工作区路径:
workspace:
path: src/timw/springboot-docker-clean
pipeline:
build:
image: maven:3.5.0-alpine
commands:
- mvn -B clean package