【问题标题】:Maven java classes generated in "target" folder are not compiled未编译在“目标”文件夹中生成的 Maven java 类
【发布时间】:2016-01-17 16:31:25
【问题描述】:

我有一个插件,它在target 文件夹下生成大量 java 文件(即 FileA.java、FileB.java)。我正在使用“exec-maven-plugin”来执行我的插件,如下所示

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>generate-event-beans</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <mainClass>com.my.project.generate.GenerateJavaFiles</mainClass>
                        <classpathScope>compile</classpathScope>
                        <arguments>
                            <argument>${basedir}/src/main/resources</argument>
                            <argument>${project.build.directory}/generated-sources/generated</argument>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我想编译这些在${project.build.directory}/generated-sources/generated下创建的java文件不添加到源代码并打包到jar中

【问题讨论】:

  • “不将它们添加到源”是什么意思?如果您想将编译好的类打包到 jar 中,在某些时候,您必须将它们添加到构建中。
  • @Tunaki 感谢您的回复,我的意思是有什么办法可以跳过使用“build-helper-maven-plugin”
  • 有一种方法,但它确实很痛苦和复杂:您可以自己调用 javac(并处理类路径混乱和源文件混乱)。但是你真的应该只使用build-helper-maven-plugin,你为什么不想使用它呢?

标签: java maven exec-maven-plugin


【解决方案1】:

使用 ma​​ven-compiler-plugin,您可以将文件添加到构建中,而无需将它们添加到 src 文件夹。

文档示例:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <includes>
      <include>...</include>
    </includes>
  </configuration>
</plugin>

【讨论】:

  • generate-sources => 在这个阶段 /target 是空的
猜你喜欢
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 2020-02-06
  • 2021-02-26
  • 2013-04-28
  • 1970-01-01
  • 2014-02-12
相关资源
最近更新 更多