出于各种原因,我决定在 IntelliJ 中为 pom.xml 中定义的输出目录设置一个环境变量。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-files-on-build</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
> <outputDirectory>${PROJECT_OUTPUT}</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
<include>${project.build.finalName}.jar</include>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
不幸的是,CodeQL Analysis 抛出以下错误:
Error: 8-02 04:52:22] [autobuild] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:copy-resources (copy-files-on-build) on project PROJECT: The parameters 'outputDirectory' for goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:copy-resources are missing or invalid -> [Help 1]
[2023-08-02 04:52:22] [autobuild] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:copy-resources (copy-files-on-build) on project PROJECT: The parameters 'outputDirectory' for goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:copy-resources are missing or invalid
有什么办法可以解决这个问题吗?
绝对路径不会导致错误并按预期执行分析。
可能有多种方法可以解决这个问题:
copy-files-on-build
执行仅与您的本地构建相关,您可以
<phase>package</phase>
并在本地构建时手动调用插件,请参阅运行单个 Maven 插件执行?mvn --activate-profiles ...
(分别为 mvn -P ...
)手动激活它,或者 在运行 CodeQL 时停用它PROJECT_OUTPUT
指定 mvn "-DPROJECT_OUTPUT=..." ...
值如果您想使用其中一种需要针对 CodeQL 的自定义
mvn
命令的方法,则必须使用“高级设置”进行 GitHub 代码扫描,并删除自动构建步骤,然后手动指定mvn
构建命令。例如,您可以查看 Gson CodeQL 工作流程 如何指定要执行的自定义 mvn
命令。