3

我的类路径上有一些 java 7 注释处理器(用于 xtend)。通过一些注释,他们创建了 java 文件。
这在 Elipse 和 Maven 构建中效果很好。

生成的文件target/generated-sources/annotations按预期结束。
相应的生成.class文件也会在预期的地方结束,因此是最终 jar 文件的一部分。

由于我还需要在我的文件中包含所有 Java 源文件.jar(应该只有一个.jar文件包含源类),因此我已指定src/main/java为资源目录(以便 Maven 将文件复制到类目录并结束在 jar 文件中)。

资源目录的技巧对我生成的文件实际上不起作用,因为 Maven 将首先复制所有资源然后开始编译(这反过来将.java通过注释处理器生成文件)。

我如何告诉 Maven 复制还包括生成的.java文件.jar

4

1 回答 1

3

您可以在正确打包之前将 绑定maven-resources-pluginprepare-package阶段以实现复制注释源:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-resources-plugin</artifactId>
      <executions>
        <execution>
          <id>copy-annotations</id>
          <phase>prepare-package</phase>
          <goals>
            <goal>copy-resources</goal>
          </goals>
          <configuration>
            <resources>
              <resource>
                <directory>target/generated-sources/annotations</directory>
              </resource>
            </resources>
          </configuration>
        </execution>
      </executions>
    </plugin>
   </plugins>
</build>
    ...

我希望这会有所帮助。

干杯,

于 2013-11-11T15:36:32.280 回答