2

我将一个项目表单Maven 2移植到Maven 3.我也借机更新了一些插件的版本,即maven-compiler-plugin,从2.1到3.0,以及maven-resources-plugin,到2.6。maven-compiler-plugin 3.0不在maven编译资源文件夹

我有资源,下一个界面,例如:

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后,编译失败,无法找到版本。

似乎很明显,它不编译版本或不包括它在类路径中。

Maven 3或Maven-compiler-plugin的最新版本是否会发生一些变化,可能会影响到这一点?从阅读文档没有什么改变...

+4

这是如何在Maven 2中工作的?你是怎么样的?原因通常不会编译src/main/resources中的java文件。问题是为什么你需要这样的事情?你有一个是神器坐标的一部分的版本? – khmarbaise

+0

发布后,您无法提供足够的信息。你正在做某种形式的代码生成,但目前还不清楚你是怎么做的(因为简单地使用transform来复制资源不会)。我建议使用'-X'运行旧版和新版,以查看它们的不同之处。 – parsifal

+0

其实问题在于maven-compiler-plugin 3.0。它适用于2.1。 – halfwarp

回答

2

你必须指定目标文件夹像下面的东西。目前,如果您查看目标文件夹,那么您可能在其中有一个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> 
+0

是的,就是这样。我错过了targetPath。谢谢! – halfwarp

+0

@halfwarp换句话说,它不是* maven-compiler-plugin。 – khmarbaise