如何在自定义eclipse插件中创建内置文件和文件夹

时间:2016-11-20 15:23:04

标签: eclipse eclipse-plugin eclipse-rcp

我正在开发一个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 /

所以,本地工作。但是,当我在其他日食中部署插件时,它无法正常工作。任何指针如何创建内置文件夹?

1 个答案:

答案 0 :(得分:1)

您似乎期望src/weblogic/ant/目录包含在导出的插件jar中 - src目录通常不包含在插件jar中。

将要包含在插件中的资源放在一个单独的目录(例如resources)中,并将该目录包含在插件build.properties中,以便它包含在导出的插件jar中。