我正在对一个蚂蚁项目进行整理。一个模块包含用于使用Castor生成源文件的XSD文件。如果我跑步,我的一切都在运作:
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版的castor-maven-plugin。
由于 添
答案 0 :(得分: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进行测试。
如果不适合您,请提供一个项目,允许复制并提及您调用的目标。