对于蚀编译器行家安装的Java 6注释处理配置(Setup Java 6 annotation pr

2019-08-16 21:03发布

什么是设置的最佳方式对Java 6的注解处理器的Eclipse项目编译器配置?

我的解决办法是设置了org.eclipse.jdt.apt.core.prefsfactorypath文件手动。 这是一个有点麻烦:

  • 引用处理器罐子在factorypath文件
  • 配置蚀注解处理器输出目录(org.eclipse.jdt.apt.genSrcDir在属性org.eclipse.jdt.apt.core.prefs
  • 添加蚀注解处理器输出目录作为源文件夹

一个问题是,日食产生的源将与Maven进行编译。 只有maven clean compile是可靠的,因为它消除了Eclipse生成的源文件。 (Eclipse和javac的生成源文件可能是不同步的)。

是否有更好的解决方案配置Maven不使用Eclipse生成的源文件在Maven的源路径?

<project>
  <properties>
    <eclipse.generated.src>${project.build.directory}/eclipse</eclipse.generated.src>
  </properties>
  <build>
      <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                  <id>add-source</id>
                  <phase>generate-sources</phase>
                  <goals> <goal>add-source</goal> </goals>
                  <configuration>
                      <sources>
                        <source>${eclipse.generated.src}</source>
                      </sources>
                    </configuration>
              </execution>
            </executions>
          </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <additionalConfig>
            <file> <name>.factorypath</name>
        <content><![CDATA[<factorypath>
  <factorypathentry kind="VARJAR" id="M2_REPO/processor/processor.jar" enabled="true" runInBatchMode="false"/>
  </factorypath>
  ]]>      </content>
            </file>
            <file>
              <name>.settings/org.eclipse.jdt.apt.core.prefs</name>
        <content><![CDATA[
  eclipse.preferences.version=1
  org.eclipse.jdt.apt.aptEnabled=true
  org.eclipse.jdt.apt.genSrcDir=${eclipse.generated.src}
  org.eclipse.jdt.apt.reconcileEnabled=true
   ]]>     </content>
            </file>
          </additionalConfig>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Answer 1:

更新:您可以尝试使用的apt-Maven的插件 。 目前,它提供了三个目标:

  • 容易处理执行项目来源贴切。
  • 易:测试过程中执行项目测试源贴切。
  • 易:月食生成的Eclipse文件易于集成。

您可以配置的目标,作为构建的一部分运行,如下所示:

<build>
  ...
  <plugins>
    ...
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>apt-maven-plugin</artifactId>
      <version>1.0-alpha-2</version>
      <executions>
        <execution>
          <goals>
            <goal>process</goal>
            <goal>test-process</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
  ...
</build>

默认情况下,输出目录设置为${project.build.directory}/generated-sources/apt

有一个开放的吉拉对编译器插件增加对Java 6的支持APT,你可以去为它投票,如果这是你想在未来的版本中看到的东西。



Answer 2:

我使用http://code.google.com/p/maven-annotation-plugin/至极简单配置。 您可以通过两种方式使用:

  • 在编译期间生成源(下面结构)
  • 产生源“手动”为src /主/生成并保持他们对SCM
       <plugin>
            <groupId>org.bsc.maven</groupId>
            <artifactId>maven-processor-plugin</artifactId>
            <executions>
                <execution>
                    <id>process</id>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <phase>generate-sources</phase>
                    <configuration>
                        <compilerArguments>-encoding ${project.build.sourceEncoding}</compilerArguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>



       <plugin>
            <groupId>org.bsc.maven</groupId>
            <artifactId>maven-processor-plugin</artifactId>
            <executions>
                <execution>
                    <id>process-test</id>
                    <goals>
                        <goal>process-test</goal>
                    </goals>
                    <phase>generate-test-sources</phase>
                    <configuration>
                        <compilerArguments>-encoding ${project.build.sourceEncoding}</compilerArguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>


      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>${project.build.sourceEncoding}</encoding>
                <!-- Disable annotation processors during normal compilation -->
                <compilerArgument>-proc:none</compilerArgument>
            </configuration>
        </plugin>


Answer 3:

有在Eclipse朱诺一个简单的解决方案(我不知道以前的版本)。 在设定/ Maven的/注释处理有三种模式为注释处理。 它默认是禁用的,但我已经测试了其他选项,工作对我来说就像魅力。 通过这种方式,你不需要配置APT处理每一个项目或修改它的pom.xml。



文章来源: Setup Java 6 annotation processing configuration for eclipse compiler with maven