3

我正在开发一个蚂蚁项目。一个模块包括用于使用 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 版(我必须使用)和 castor-maven-plugin 2.0 版进行了测试。

谢谢蒂姆

4

1 回答 1

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] 正在扫描项目...
[信息]                                                                         
[信息] --------------------------------------------- -------------------------
[INFO] 建筑 Q4169367/ 1.0-SNAPSHOT
[信息] --------------------------------------------- -------------------------
[信息]
[信息] --- castor-maven-plugin:1.0:generate (default) @ Q4169367 ---
[信息] 处理 /home/pascal/Projects/stackoverflow/Q4169367/src/main/castor/schema.xsd
[信息]
[信息] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q4169367 ---
[INFO] 使用 'UTF-8' 编码复制过滤的资源。
[INFO] 跳过不存在的资源目录 /home/pascal/Projects/stackoverflow/Q4169367/src/main/resources
[信息]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q4169367 ---
[INFO] 将 3 个源文件编译到 /home/pascal/Projects/stackoverflow/Q4169367/target/classes
...

换句话说,插件的 1.0 版本按预期触发(2.0 版本也可以)。使用 Maven 3.0 测试。

如果它不适合您,请提供一个允许重现并提及您调用的目标的项目。

于 2010-11-13T11:09:06.517 回答