我正在开发一个Eclipse插件,需要附带内置的ant build文件。它在我运行项目时工作。但是,当我导出插件并在另一个eclipse中部署导出的插件时,不会生成ant构建文件。我怀疑是在运行时,不会访问ant构建文件的源代码。任何指针如何解决问题?这是代码:
private void createAntFile(IProject project, Properties properties) throws CoreException, IOException {
InputStream antFileInputStream =null;
try {
String antFileName = properties.getProperty("name.ant.file");
String antFilePath = properties.getProperty("path.ant.file");
IFile file = project.getFile(antFileName);
antFileInputStream = Activator.getDefault().getBundle().getEntry(antFilePath).openStream();
file.create(antFileInputStream, false, null);
antFileInputStream.close();
}finally{
if(antFileInputStream!=null){
try {
antFileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
name.ant.file=build.xml
path.ant.file=src/weblogic/ant/build.xml
源构建文件我在路径src / weblogic / ant / build.xml
中进行了硬编码编辑:
以下是创建内置文件夹的代码:
private void createWeblogicTemplate(IProject project, Properties properties) throws IOException, CoreException {
String weblogicTemplateSourcePath = properties.getProperty("path.weblogic.template.source");
Path path = new Path(weblogicTemplateSourcePath);
Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
URL fileURL = FileLocator.find(bundle, path, null);
String filePath = FileLocator.resolve(fileURL).getPath();
System.out.println(filePath);
File sourceFile = new File(filePath);
String weblogicTemplateTargetPath = properties.getProperty("path.weblogic.template.target");
IFolder folder = project.getFolder(weblogicTemplateTargetPath);
copyFolder(sourceFile,folder,project,properties);
}
System.out.println(filePath)行的打印路径为 / C:/用户//桌面/ Eclipse的RCP-luna的-SR2-Win32的x86_64的/蚀/../../../工作空间插件/的WebLogic /资源/ weblogictemplate /
所以,本地工作。但是,当我在其他日食中部署插件时,它无法正常工作。任何指针如何创建内置文件夹?
答案 0 :(得分:1)
您似乎期望src/weblogic/ant/
目录包含在导出的插件jar中 - src目录通常不包含在插件jar中。
将要包含在插件中的资源放在一个单独的目录(例如resources
)中,并将该目录包含在插件build.properties
中,以便它包含在导出的插件jar中。