这个插件需要读取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));
但是,我似乎无法访问该文件。如果(FileExists)的计算结果为false,尽管该文件可从http://%JenkinsHost%:%Port%/plugin/company-deploy-jenkins-plugin/release.xml获得,并且该文件可直接在本地的src/main/webapp文件夹下获得。
我正在尝试遵循KK关于处理Jenkins静态资源的建议,如下所述:http://jenkins-ci.361315.n4.nabble.com/ANN-Referring-to-static-resources-from-your-plugin-td4490655.html。
在通过file.toString()检查文件路径时,我得到/static/4874107b/plugin/company-deploy-jenkins-plugin/release.xml.
在对象文档上做任何工作都会返回空指针异常,并显示消息(没有这样的文件或目录)。
有什么想法吗?
发布于 2017-09-14 05:45:37
您可以尝试这样做:
Jenkins.getInstance().getPlugin("plugin-name").getWrapper().baseResourceURL.getFile()
-->这将返回/src/main/webapp位置
在此位置,您将能够找到您的文件。
发布于 2017-09-29 09:22:00
您可以使用jenkins.model.Jenkins
来帮助您:
import jenkins.model.Jenkins;
...
String releaseXmlUrl = Jenkins.getInstance().getRootUrl() + "plugin/company-deploy-jenkins-plugin/release.xml";
或者,如果您尝试从插件中的Descriptor执行此操作,则可以使其对插件缩写的更改更具弹性,如下所示:
import jenkins.model.Jenkins;
...
String releaseXmlUrl = Jenkins.getInstance().getRootUrl() + "plugin/" + getPlugin().getShortName() + "/release.xml";
https://stackoverflow.com/questions/29040369
复制相似问题