2016-11-20 3 views
0

Я разрабатываю плагин Eclipse, который должен быть отправлен с встроенным файлом сборки муравьев. Он работает, когда я запускаю проект. Однако, когда я экспортирую плагин и развертывая экспортированный плагин в другом затмении, файл сборки муравьев не генерируется. Мой подозреваемый заключается в том, что во время выполнения источник файла сборки муравьев не получает доступа. Любой указатель, как решить проблему? Вот код:Как создать встроенный файл и папку в пользовательском плагине eclipse

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/муравей/build.xml

Edit:

Вот код создавать встроенные папки:

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:/Users//Desktop/eclipse-rcp-luna-SR2-win32-x86_64/eclipse/../../../workspace-plugin/weblogic/resources/weblogictemplate/

Итак, локально работает. Тем не менее, он не работает, когда я развертываю pluin в каком-то другом затмении. Любой указатель, как создавать встроенные папки?

ответ

1

Вы, кажется, ожидаете, что каталог src/weblogic/ant/ будет включен в экспортированный баннер плагина - каталог src обычно не включен в банку плагина.

Поместите ресурсы, которые вы хотите включить в плагин, в отдельный каталог (например, resources) и включите этот каталог в плагин build.properties, чтобы он был включен в экспортированную банку с плагинами.

+0

Когда я переместил файл build.xml в папку ресурсов, он отлично работает. Однако мне нужно добавить в ресурсы больше папок, таких как шаблон jdbc, папку безопасности и т. Д. Эти папки не создаются. Нужно ли мне что-то делать для копирования папок? –

+0

Ваш код создает файл build.xml, вам нужно будет написать код для создания всех необходимых файлов и папок. –