В Eclipse, как программно установить URL JavaDoc для записи пути к классам? - PullRequest
4 голосов
/ 06 января 2010

У меня есть плагин Eclipse, который, помимо прочего, может создать проект и дать ему несколько записей пути к классам.Само по себе это прекрасно работает.

В этих банках источник отсутствует, однако есть URL-адрес, который можно использовать для Javadoc.Я хочу настроить это программно для этих записей classpath, которые создает плагин.Вот что я делаю:

  IClasspathEntry cpEntry;

  File[] jarFile = installFilePath.listFiles();

  IPath jarFilePath;
  for (int fileCount = 0; fileCount < jarFile.length; fileCount++)
  {
      jarFilePath = new Path(jarFile[fileCount].getAbsolutePath());
      cpEntry = JavaCore.newLibraryEntry(jarFilePath, null, null);
      entries.add(cpEntry);
  }

Я не мог понять, как установить расположение URL JavaDoc для записи claspath.Это можно сделать в пользовательском интерфейсе Eclipse - например, если вы щелкнете правой кнопкой мыши по проекту, перейдите в Свойства ... -> Путь сборки Java, развернете одну из записей JAR и отредактируете «Расположение Javadoc», вы можете указатьURL.Как мне сделать это из плагина?

Ответы [ 2 ]

1 голос
/ 26 июля 2011

ответ Якира верен, но лучше использовать общедоступный метод фабрики JavaCore.newClasspathAttribute(), а не напрямую создавать ClasspathAttribute (который является частным API Eclipse). Например:

File javadocDir = new File("/your/path/to/javadoc");
IClasspathAttribute atts[] = new IClasspathAttribute[] {
    JavaCore.newClasspathAttribute("javadoc_location", javadocDir.toURI().toString()),
};
IClasspathEntry cpEntry = JavaCore.newLibraryEntry(libraryPath, null, null, null, atts, false);
1 голос
/ 14 декабря 2010

Я использую следующее:

        Path   pth = new Path( MY_JARFILE_LOCATION );
        Path   pthd = new Path( MY_JAVADOC_LOCATION );
        ClasspathAttribute att = new ClasspathAttribute("javadoc_location", "file:" + pthd.toOSString());
        IClasspathAttribute[] atts = new IClasspathAttribute[] { att };
        IClasspathEntry cpISDI = JavaCore.newLibraryEntry(pth, null, null, null, atts, false);
        cpEntries.add(1, cpISDI);

(отредактированное форматирование)

...