Плагин Maven Asciidoctor и каталог внешних изображений - PullRequest
0 голосов
/ 07 сентября 2018

У нас есть структура с одним источником для создания нескольких документов AsciiDoc. Некоторые сборки используют Maven с плагином AsciiDoctor; это требование от разработчика.

Но нам нужен каталог с общими изображениями (требование из другой сборки). И мы не хотим использовать символические ссылки в репозитории, чтобы люди могли делать локальные сборки в Windows.

Теперь мы делаем это, указывая на imagesdir в конфигурации плагина asciidoctor в pom.xml:

  <plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <configuration>
      <imagesDir>${project.basedir}/../../_images</imagesDir>
    </configuration>
  </plugin>

Хотя сборка работает, она не может скопировать изображения в target/generated-docs. Вместо этого изображения ссылаются на их существующее место.

Как сделать так, чтобы сборка Maven правильно копировала эти изображения и имела ссылки в HTML-файле на копию в генерируемых документах? Я, конечно, мог бы написать скрипт постобработки, но должен быть какой-то способ сделать это внутри Maven? ..

1 Ответ

0 голосов
/ 28 июля 2019

Вы можете использовать плагин ресурсов для копирования всех изображений.Добавьте это в свою сборку:

    <build>
        <resources>
            <resource>
                <directory>src/main/asciidoc/images</directory>
                <targetPath>../generated-docs/images</targetPath>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

Пожалуйста, измените имена папок соответственно.Используйте filtering для false, поскольку изображения являются двоичными файлами, и вы не хотите, чтобы Maven делал здесь замены.

В зависимости от настроек вам может больше не потребоваться imagesDir.ImagesDir будет только указывать расположение изображений относительно созданного HTML-файла.Поэтому это всегда должен быть относительный URL.Ваш пример будет содержать абсолютный URL.

...