2016-05-19 2 views
0

У меня есть файл POM (для выполнения Eclipse), где я хочу выполнить задачу ANT во время фазы generate-sources. На основе m2e documentation, в How to solve "Plugin execution not covered by lifecycle configuration" for Spring Data Maven Builds, Maven: execute antrun task during package и Where should be placed maven-compiler-plugin declaration: in <plugins> or <pluginManagement>?, я написал свой файл POM таким образом:Maven (m2e) не выполняет ant task

<?xml version="1.0" encoding="UTF-8"?> 
    <project> 

    ... 

    <build> 
     <pluginManagement> 
      <plugins> 
       ... 
       <plugin> 
        <groupId>org.eclipse.m2e</groupId> 
        <artifactId>lifecycle-mapping</artifactId> 
        <version>1.0.0</version> 
        <configuration> 
         <lifecycleMappingMetadata> 
          <pluginExecutions> 
           <pluginExecution> 
            <pluginExecutionFilter> 
             <groupId>org.apache.maven.plugins</groupId> 
             <artifactId>maven-antrun-plugin</artifactId> 
             <versionRange>[1.8,)</versionRange> 
             <goals> 
              <goal>generate-sources</goal> 
             </goals> 
            </pluginExecutionFilter> 
            <action> 
             <execute/> 
            </action> 
           </pluginExecution> 
          </pluginExecutions> 
         </lifecycleMappingMetadata> 
        </configuration> 
       </plugin> 

      </plugins> 
     </pluginManagement> 

     <plugins> 

      <plugin> 
       <!-- Plugin 1 --> 
      </plugin> 

      <plugin> 
       <!-- Plugin to be executed during generate-sources phase. --> 
      </plugin> 

      <plugin> 
       <!-- Should be in the generate-sources phase after the plugin above. --> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.8</version> 
       <executions> 
        <execution> 
         <id>ant-test</id> 
         <configuration> 

          <task> 
           <echo message="ANT TEST" /> 
          </task> 

         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

     </plugins> 
    </build> 

    ... 

</project> 

То, что я понял из моего чтения, является то, что я прошу говорить с Maven следующего: Сначала прошу Затмение плагин для Maven (m2e), чтобы разрешить запуск maven-antrun-plugin (версия 1.8 или выше) во время generate-sources. Затем, в фазе generate-sources и после выполнения первого плагина, вызовите плагин ant для запуска задачи, которая эхо меняет мое сообщение.

Однако мессендж не отображается. Ни когда я выполняю только цель generate-sources, ни когда я выполняю цель install.

I, если следовать this sugestion here и добавьте <phase> элемент внутри <execution>, как здесь:

<executions> 
    <execution> 
     <id>ant-test</id> 
     *<phase>generate-sources</phase>* 
     <configuration> 

      <task> 
       <echo message="ANT TEST" /> 
      </task> 

     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
    </execution> 
</executions> 

У меня есть сообщение об ошибке Eclipse: выполнения плагин не охваченных конфигурациями жизненных цикла: org.apache.maven.plugins : maven-antrun-plugin: 1.8: run (исполнение: ant-test, phase: generate-sources). Here показывает пример, где нет конкретного <pluginManagement> для муравьиного плагина. Но и у меня не было успеха.

Так что здесь отсутствует?

Спасибо,

Рафаэль Афонсу

+0

Измените конфигурацию в m2e от 'generate-sources' до' run' ... – khmarbaise

+0

Извините, это не сработало. :( –

ответ

0

На самом деле, я обнаружил, что сообщение об ошибке выполнения Plugin не охватывается конфигурации жизненным циклом: org.apache.maven.plugins: Maven-antrun-плагин: 1.8: бег (исполнение: ant-test, phase: generate-sources) не влияет на выполнение Maven. Сообщение отображается без проблем. Чтобы говорить правду, мне пришлось изменить task на target, но сообщение продолжает отображаться. Может быть, это всего лишь какая-то ошибка m2e, которая только нас раздражает.

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