0

我正在运行 Drone 的本地实例,并且正在尝试构建几个非常简单的 Maven 项目。他们是完全正常的,并遵守所有惯例。

我正在使用最新的 Drone docker 映像(截至今天),并在 Rancher 环境中设置了代理和服务器。本地 Gogs 实例是 Git 存储库。

当 Drone 运行构建时,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
4

1 回答 1

1

问题是无人机在工作区路径中使用您的存储库 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
于 2017-06-01T10:36:27.427 回答