无人机无法编译 Maven 测试类



我有无人机运行的本地实例,并且正在尝试构建一些非常简单的Maven项目。它们是完全正常的,并遵循所有惯例。

我正在使用最新的无人机Docker映像(截至今天(,并在牧场主环境中设置了代理和服务器。本地GOGS实例是Git Repo。

当无人机运行构建时,Maven无法编译测试类,因为它找不到编译的源类。它在两个不同的项目上发生,它们使用以下方法没有任何问题:

  • 在用Maven的命令行上
  • 在Intellij
  • 在安装项目目录并以这种方式执行构建时,运行Docker Maven图像。

只有无人机构建失败。我很难过。有任何想法吗?

这是.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

问题是无人机在工作区路径中使用您的存储库URL。在您的示例中,存储库URL包括端口名称(COLON(,该名称似乎在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

最新更新