我可以配置maven-compiler-plugin来处理.class文件而不是.java文件吗?

时间:2014-10-09 02:37:59

标签: java maven javac maven-compiler-plugin

当我在命令行上使用javac来处理单个类上的注释时,我可以执行以下操作:

$ javac -proc:only -cp target/classes -sourcepath target/classes x.y.z.Bar

我想在maven中做同样的事情,除了使用 target / classes 目录中的所有类,而不是只指定一个类文件。我不想指定任何java源文件(隐式或显式),因为我想避免多次加载和解析源文件。

是否可以配置maven-compiler-plugin仅加载类文件,而不是加载java源文件?我尝试添加以下配置:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.5.1</version>
  <executions>
    <execution>
      <id>process-annotations</id>
      <phase>compile</phase>
      <goals><goal>compile</goal></goals>
      <configuration>
        <!-- Annotation processing only -->
        <proc>only</proc>
        <!-- Include all class files in target/classes directory. -->
        <includes>
          <include>${project.build.outputDirectory}/**/*.class</include>
        </include>
      </configuration>
    </execution>
  </executions>
</plugin>

但我在插件输出中看到Nothing to compile - all classes are up to date,并且没有执行注释处理。

不确定这是否可行,但如果是这样的话会很好。

编辑#1

实际上<includes>选项不对,因为javac -proc:only接受类名而不是类文件名(例如 xyzFoo 不是 x / y / z /让Foo.class )。我在插件输出中看到以下内容:

compileSourceRoots=[..mumble../foo/src/main/java]

我不认为可以在插件配置中更改。看起来并不乐观。

0 个答案:

没有答案