Maven2: Как настроить результат плагина JXR при использовании сайта mvn? - PullRequest
4 голосов
/ 31 июля 2009

У меня есть многомодульный проект, и я хочу развернуть на сайте проекта HTML-версию моего исходного кода с помощью плагина JXR maven.

Проблема в том, что плагин JXR работает нормально, папка XREF правильно генерируется для каждого моего модуля, но когда я использую команду mvn site: stage, чтобы получить весь контент сайта проекта и правильно установить все ссылки сгенерированный не извлекает папки XREF.

Вот фрагмент моего файла POM, в котором настроен плагин JXR:

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>jxr-maven-plugin</artifactId>
   <configuration>
      <aggregate>true</aggregate>
   </configuration>
</plugin>

Вот команда, которую я использую для создания и размещения моего сайта:

mvn site site:stage

Ребята, у вас есть идеи?

Заранее спасибо.

г.

1 Ответ

4 голосов
/ 31 июля 2009

Не уверен, что это актуально, но ваша команда запускает сайт дважды, сайт mvn создаст сайт, а site: stage также запустит сайт, возможно, это вызывает проблемы, но я, честно говоря, не понимаю, почему.

Глядя на документацию JXR , в ней упоминается только сайт: цель сайта, я не могу понять, почему он не будет работать должным образом для сайта: цель этапа при его расширении. Если вы запустите цель site , скопируйте вывод в другой каталог, запустите цель site: stage и сравните вывод, который может дать некоторое представление о проблеме.

Обновление: я попробовал это сам, и внешняя ссылка была включена и красиво сгруппирована в c: \ test \ stage с правильно управляемыми перекрестными ссылками. Я включил конфигурацию, которую я использовал.

В моем родительском ПОМ я определил конфигурацию сайта следующим образом:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <executions>
        <execution>
          <phase>prepare-package</phase>
          <goals>
            <goal>stage</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <stagingDirectory>c:\test\stage</stagingDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

Раздел distributionManagement был настроен с информацией о сайте (на самом деле это не нужно, так как я установил директорию stagingDirectory выше, но цель не будет работать без нее).

<distributionManagement>  
  <site>
    <id>mojo.website</id>
    <name>Mojo Website</name>
    <url>scp://test/</url>
  </site>
</distributionManagement>

Моя конфигурация JXR в родительском pom была следующей:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jxr-plugin</artifactId>
  <reportSets>
    <reportSet>
      <id>src-xref</id>
      <reports>
        <report>jxr</report>
      </reports>
    </reportSet>
    <reportSet>
      <id>test-xref</id>
      <reports>
        <report>test-jxr</report>
      </reports>
    </reportSet>
  </reportSets>
  <configuration>
    <aggregate>true</aggregate>
  </configuration>
</plugin>

Выполнение командной строки: mvn clean site: stage

Редактировать: В комментариях есть плагин codehaus jxr с немного другой семантикой. Обязательно используйте версию org.apache.maven.plugins, а не версию org.codehaus.mojo.

...