2015-12-02 3 views
2

Я хочу использовать maven-exec-plugin для запуска командной строки (cmd) для преобразования файла Markdown в файл PDF с помощью Pandoc.Использовать maven-exec-plugin для запуска командной строки

Чтобы сделать это вручную, я выполнены следующие команды:

pandoc ReadMe.md -o ReadMe.html 
pandoc ReadMe.html --latex-engine=xelatex -o ReadMe.pdf 

Я не был в состоянии работать, что в одной команде, pandoc давая странные ошибки! Но это еще одна проблема ...

Я добавил это в мой файл pom, используя другой образец, найденный в Интернете, но безуспешно.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <executions> 
       <execution> 
        <id>pandoc</id> 
        <phase>generate-pdf</phase> 
        <configuration> 
         <executable>cmd</executable> 
         <workingDirectory></workingDirectory> 
         <arguments> 
          <argument>/C</argument> 
          <argument>pandoc</argument> 
          <argument>README.md</argument> 
          <argument>-o</argument> 
          <argument>README.html</argument> 
         </arguments> 
        </configuration> 
        <goals> 
         <goal>exec</goal> 
        </goals> 
       </execution>        
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Я не гуру maven и помощь не оценена!

ответ

3

Определенная фаза, <phase>generate-pdf</phase>, не является фазой maven, поэтому Maven не привязывает выполнение к своему рабочему процессу.

Вы должны привязать его к стандартной фазе Maven, в зависимости от ваших потребностей. Например, попробуйте <phase>package</phase>, он будет выполнен почти в конце вашей сборки.

id элемента выполнения плагина является свободным текст, вы можете ввести идентификатор вы хотите, это будет выглядеть как часть результатов сборки в фигурных скобках после имени плагина и целей,

т.е. exec-maven-plugin:1.1:exec (pandoc)

Элемент phase должен соответствовать известной фазе maven, чтобы прикрепить к ней плагин/цель. Если фаза не известна, Maven просто проигнорирует выполнение плагина/цели (что также является принятым подходом, обычно использующим де-факто стандарт none как фазу, чтобы отключить унаследованное выполнение плагина, но это немного продвинуто для сфера охвата этого вопроса, я бы сказал).

Для получения дополнительной информации о фазах maven см. Официальную документацию, here. Полный список фаз maven, here.

+0

Вы так правы! Вместо этого я задал фазу генерации ресурсов. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^