Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插件找不到Jenkins静态资源_Jenkins_Jenkins Plugins - Fatal编程技术网

插件找不到Jenkins静态资源

插件找不到Jenkins静态资源,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,这个插件需要读取xml数据存储并解析其中的某些元素 File file = new File(Functions.getResourcePath()+"/plugin/company-deploy-jenkins-plugin/release.xml"); boolean fileExists = file.exists(); if (fileExists) { LOGGER.info("Found the file"); } Docume

这个插件需要读取xml数据存储并解析其中的某些元素

    File file = new File(Functions.getResourcePath()+"/plugin/company-deploy-jenkins-plugin/release.xml");
    boolean fileExists = file.exists();
    if (fileExists) {
        LOGGER.info("Found the file");
    }
    Document document = builder.parse(new FileInputStream(file));
但是,我似乎无法访问该文件。if(fileExists)的计算结果为false,尽管该文件在上可用,并且该文件直接在src/main/webapp文件夹下本地可用

我试图按照KK的建议来处理Jenkins静态资源,如下所述:

通过file.toString()检查文件路径后,我得到/static/4874107b/plugin/company deploy jenkins plugin/release.xml

对对象文档执行任何操作都会返回一个带有消息的空指针异常(没有这样的文件或目录)

有什么想法吗?

你可以试试这个:

Jenkins.getInstance().getPlugin("plugin-name").getWrapper().baseResourceURL.getFile() 
-->这将返回/src/main/webapp位置


从这个位置,您将能够找到您的文件

您可以使用
jenkins.model.jenkins
来帮助您:

import jenkins.model.Jenkins;
...
String releaseXmlUrl = Jenkins.getInstance().getRootUrl() + "plugin/company-deploy-jenkins-plugin/release.xml";
或者,如果您试图从插件中的某个位置执行此操作,您可以使此操作对插件短名称的更改更具弹性,例如:

import jenkins.model.Jenkins;
...
String releaseXmlUrl = Jenkins.getInstance().getRootUrl() + "plugin/" + getPlugin().getShortName() + "/release.xml";

首先,检查
file.toString()
生成的内容,并验证它是否有意义,然后在进行时将其添加到问题中。复制粘贴到
ls-l
shell命令(或其他任何命令)并查看打印的内容。我认为您还需要一些内容,例如Jenkins目录的位置……是的,当我硬编码文件系统上资源的路径时,它工作得很好/tools/jenkins/jenkins_home/plugins/company deploy jenkins plugin/release.xml。。。但是,我希望尽量避免硬编码,并利用Jenkins的缓存机制