来自 docker 的 Jenkins PMD 详细信息:复制源文件失败
Jenkins PMD details from docker: Copying the source file failed
我在 docker 图像中 运行 Jenkins maven 任务。我的任务生成 pmd.xml 然后由 Jenkins 插件解析。
问题是 docker 图像中的路径与 Jenkins 工作区不同。这会导致 PMD 视图在重定向到源时崩溃。 pmd.xml
绝对路径如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<pmd xmlns="http://pmd.sourceforge.net/report/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/report/2.0.0 http://pmd.sourceforge.net/report_2_0_0.xsd"
version="6.21.0" timestamp="2021-09-28T09:14:56.411">
<file name="/usr/src/mymaven/mymodule/src/main/java/my/org/MyFile.java">
<violation beginline="124" endline="124" begincolumn="40" endcolumn="145">
...
</violation>
</file>
</pmd>
詹金斯错误:
Copying the source file '/usr/src/mymaven/...' from the workspace to the build folder 'xxxxx.tmp' on the Jenkins master failed.
If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/[job-name]//usr/src/mymaven/...
我想在我的 pmd.xml 报告中实现相对路径,在本例中为:
...
<file name="mymodule/src/main/java/my/org/MyFile.java">
...
如何使用 maven-pmd-plugin 插件实现相对路径?
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.13.0</version>
是否有任何其他方法可以解决在 docker 内部构建的 Jenkins 源代码中显示 pmd 详细信息的问题?
更新:添加 docker-compose.yml
片段
version: "3.7"
services:
maven:
image: maven:3-openjdk-11-slim
volumes:
- .:/usr/src/mymaven
command:
[ "mvn",
"clean",
"install",
"pmd:pmd"
]
...
我通过将 docker volume
挂载点更改为 Jenkins WORKSPACE
路径解决了这个问题。
...
volumes:
- "${WORKSPACE}:${WORKSPACE}"
...
我在 docker 图像中 运行 Jenkins maven 任务。我的任务生成 pmd.xml 然后由 Jenkins 插件解析。
问题是 docker 图像中的路径与 Jenkins 工作区不同。这会导致 PMD 视图在重定向到源时崩溃。 pmd.xml
绝对路径如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<pmd xmlns="http://pmd.sourceforge.net/report/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/report/2.0.0 http://pmd.sourceforge.net/report_2_0_0.xsd"
version="6.21.0" timestamp="2021-09-28T09:14:56.411">
<file name="/usr/src/mymaven/mymodule/src/main/java/my/org/MyFile.java">
<violation beginline="124" endline="124" begincolumn="40" endcolumn="145">
...
</violation>
</file>
</pmd>
詹金斯错误:
Copying the source file '/usr/src/mymaven/...' from the workspace to the build folder 'xxxxx.tmp' on the Jenkins master failed.
If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/[job-name]//usr/src/mymaven/...
我想在我的 pmd.xml 报告中实现相对路径,在本例中为:
...
<file name="mymodule/src/main/java/my/org/MyFile.java">
...
如何使用 maven-pmd-plugin 插件实现相对路径?
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.13.0</version>
是否有任何其他方法可以解决在 docker 内部构建的 Jenkins 源代码中显示 pmd 详细信息的问题?
更新:添加 docker-compose.yml
片段
version: "3.7"
services:
maven:
image: maven:3-openjdk-11-slim
volumes:
- .:/usr/src/mymaven
command:
[ "mvn",
"clean",
"install",
"pmd:pmd"
]
...
我通过将 docker volume
挂载点更改为 Jenkins WORKSPACE
路径解决了这个问题。
...
volumes:
- "${WORKSPACE}:${WORKSPACE}"
...