maven:如何在.jar中包含注释生成的.java文件

时间:2013-11-11 11:53:30

标签: java maven gwt xtend

我的class-path上有一些java 7注释处理器(用于xtend)。通过一些注释,他们创建了java文件 这在Elipse和Maven构建中非常有用。

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

因为我需要在我的.jar文件中包含所有java源文件(对于GWT,应该只有一个.jar文件,包含类的源代码), 我已将src/main/java指定为资源目录(以便Maven将文件复制到类dir中,并最终放在jar文件中)。

资源目录的技巧对我生成的文件并不真正有效,因为Maven将首先复制所有资源,然后开始编译(这将通过注释处理器生成.java文件。) / p>

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

1 个答案:

答案 0 :(得分:3)

您可以将maven-resources-plugin绑定到prepare-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>
    ...

我希望有所帮助。

干杯,