2010-11-12 2 views
3

Я mavenizing муравей проекта. Один модуль включает файлы XSD, которые используются для генерации исходных файлов с помощью Castor. У меня все работает, если я бегу:Maven - Как заставить плагин Castor запускаться на фазе генерации источников?

mvn castor:generate package 

Однако я не могу получить его для запуска генерации цели для моего плагина без указания его в командной строке. Мой блок xml-модуля плагина выглядит следующим образом:

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>castor-maven-plugin</artifactId> 
     <version>1.0</version> 
     <configuration> 
     </configuration> 
     <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
      <goal>generate</goal> 
      </goals> 
     </execution> 
     </executions> 
</plugin> 

Я пробовал несколько фазовых записей без везения. Любая идея, что я делаю неправильно здесь? Я тестировал это в Windows XP и Linux, используя Maven 2 и 3. Я пробовал его с версией 1.0 (которую я должен использовать) и 2.0 плагина-cast-maven-plugin.

Благодаря Тим

+0

Вы смотрели след с -X? Вы уверены, что ему не нужна минимальная конфигурация? – bmargulies

+0

Я бросил след и искал файл для любого упоминания плагина Castor. Не было. –

ответ

4

castor:generate цель связана по умолчанию к фазе жизненного цикла generate-sources так что вам даже не нужно связывать его явно, если вы не хотите, чтобы привязать его к другой фазе, конечно.

Предполагая, что ваш *.xsd находятся в каталоге по умолчанию src/main/castor, следующий, таким образом, будет достаточно:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>castor-maven-plugin</artifactId> 
    <version>1.0</version> 
    <configuration> 
     <!--schema>src/main/castor/schema.xsd</schema--> 
    </configuration> 
    <executions> 
     <execution> 
     <goals> 
      <goal>generate</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

И если вы есть src/main/castor/castorbuilder.properties файл, здесь выход при вызове фазы кзади от generate-sources фазы:

 
$ mvn package [INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Q4169367/ 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- castor-maven-plugin:1.0:generate (default) @ Q4169367 --- 
[INFO] Processing /home/pascal/Projects/stackoverflow/Q4169367/src/main/castor/schema.xsd 
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q4169367 --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /home/pascal/Projects/stackoverflow/Q4169367/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q4169367 --- 
[INFO] Compiling 3 source files to /home/pascal/Projects/stackoverflow/Q4169367/target/classes 
... 

Другими словами, версия 1.0 плагина запускается, как ожидалось (версия 2.0 также работает). Протестировано с Maven 3.0.

Если это не для вас, предоставьте проект, позволяющий воспроизвести и указать цель, которую вы вызываете.

+0

Паскаль, вы правы. То, что у вас было, было почти идентично тому, что у меня было. Я понял, что у меня не так. В какой-то момент я добавил тэг , а XML-плагин для Castor оказался под этим вместо обычного тега . Перемещение этого вопроса разрешило проблему. Благодарю. –