Java 找不到GitLab CI main方法上的Gradle任务失败

Java 找不到GitLab CI main方法上的Gradle任务失败,java,gradle,gitlab,Java,Gradle,Gitlab,我正在为一个项目建立一个新的GitLab CI管道 首先,我的目标是创建一个构建、测试和分析项目的基本管道(3个简单阶段) 我的问题是,我的第二阶段(测试)依赖于一个Gradle任务,该任务生成一些文档(我们根据测试生成动态文档)。该任务调用实用程序的main来生成一个简单的文档 当我在Windows主机下运行所有任务时,它们都可以正常工作,但在GitLab的CI上使用基于Alpine Linux的映像执行相同操作失败,错误如下: > Task :compileTestJava Note:

我正在为一个项目建立一个新的GitLab CI管道

首先,我的目标是创建一个构建、测试和分析项目的基本管道(3个简单阶段)

我的问题是,我的第二阶段(测试)依赖于一个Gradle任务,该任务生成一些文档(我们根据测试生成动态文档)。该任务调用实用程序的main来生成一个简单的文档

当我在Windows主机下运行所有任务时,它们都可以正常工作,但在GitLab的CI上使用基于Alpine Linux的映像执行相同操作失败,错误如下:

> Task :compileTestJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test

> Task :generatePermissionsDocument FAILED
Error: Could not find or load main class 

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generatePermissionsDocument'.

> Process 'command '/opt/java/openjdk/bin/java'' finished with non-zero exit value 1
我曾尝试启用Gradle stacktraces,但未能从中获得任何好信息。在大多数情况下,我的构建脚本和GitLab CI脚本看起来都正常(包括以下内容以供参考):

起初我认为这可能是一个缓存或权限相关的问题,但我检查了构建任务生成的完整性或缓存,以及生成的文件夹的权限,一切看起来都正常

作为参考,我尝试调用的任务如下:

task generatePermissionsDocument(type: JavaExec, group: 'application') {
    description = 'Will generate API Permissions adoc'
    main = 'fts.marketing.tools.GeneratePermissionsDocument'
    classpath = sourceSets.main.runtimeClasspath
    //jvmArgs = applicationDefaultJvmArgs
    workingDir = generatedDocumentation
}

有人能解释一下为什么失败,以及必须采取什么措施来解决它吗?

我设法找到了这一问题的根源。我对应用程序的默认JVM参数进行了一些条件设置,这显然是错误的。所述进程在Gradle传入JVM的参数中包含一个尾随字符


出于某种原因,在类似Unix的环境中运行时,它不太受欢迎,而在Windows主机上工作正常。我重新处理了arg设置的条件部分,一切都很顺利。

我设法找到了这个问题的根源。我对应用程序的默认JVM参数进行了一些条件设置,这显然是错误的。所述进程在Gradle传入JVM的参数中包含一个尾随字符

出于某种原因,在类似Unix的环境中运行时,它不太受欢迎,而在Windows主机上工作正常。我重新处理了arg设置的条件部分,一切都像一个符咒

task generatePermissionsDocument(type: JavaExec, group: 'application') {
    description = 'Will generate API Permissions adoc'
    main = 'fts.marketing.tools.GeneratePermissionsDocument'
    classpath = sourceSets.main.runtimeClasspath
    //jvmArgs = applicationDefaultJvmArgs
    workingDir = generatedDocumentation
}