【问题标题】:maven-compiler-plugin 3.0 not compiling resources folder under mavenmaven-compiler-plugin 3.0 没有在 maven 下编译资源文件夹
【发布时间】:2012-12-19 03:07:42
【问题描述】:

我正在将一个项目从 Maven 2 移植到 Maven 3。我也借此机会更新了一些插件的版本,即 maven-compiler-plugin,从 2.1 到 3.0,以及 maven-resources-plugin,到 2.6。

我在资源下有这样的接口:

public interface Version {
  public static final String VERSION = "${project.version}";
}

在我的 pom.xml 中,在构建中,我有:

<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

这以前是有效的。但是自从升级到 Maven 3,编译失败,找不到版本。

很明显,它没有编译 Version 或没有将其包含在类路径中。

Maven 3 或最新版本的 maven-compiler-plugin 是否有一些变化可能会影响这一点?阅读文档后没有任何改变...

【问题讨论】:

  • 这在 Maven 2 中是如何工作的?你是怎么看的?因为通常不会编译位于 src/main/resources 中的 java 文件。问题是你为什么需要这些东西?你有一个作为工件坐标一部分的版本?
  • 正如发布的那样,您没有提供足够的信息。你正在做某种形式的代码生成,但不清楚你是如何做的(因为简单地用 transform 复制资源不会这样做)。我建议使用-X 运行新旧版本,看看它们有何不同。
  • 实际上这里的问题在于 maven-compiler-plugin 3.0。它适用于 2.1。

标签: java maven maven-3 maven-resources-plugin maven-compiler-plugin


【解决方案1】:

您必须将目标文件夹指定为如下所示。目前,如果您查看目标文件夹,您可能在那里有一个 Version.java 文件。通过添加 targetPath,它会将过滤后的 .java 文件放入您的 src/java 文件夹中,并将其编译到您的目标文件夹中。

<resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
     <includes>
       <include>**/*.java</include>
    </includes>
    <targetPath>${basedir}/src/main/java/</targetPath>
</resource>

【讨论】:

  • 是的,就是这样。我错过了目标路径。谢谢!
  • @halfwarp 换句话说,它不是 maven-compiler-plugin。
猜你喜欢
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 2021-02-07
  • 2018-11-25
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多