Java 如何让maven中的资源目录正常工作?
我有一个Java Maven web应用程序项目,我正试图清理它。在我的pom.xml部分中,我有以下内容:Java 如何让maven中的资源目录正常工作?,java,maven,filter,properties,profile,Java,Maven,Filter,Properties,Profile,我有一个Java Maven web应用程序项目,我正试图清理它。在我的pom.xml部分中,我有以下内容: <build> <resources> <resource> <filtering>true</filtering> <directory>src/main/resources</directory> </res
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
<filters>
<filter>profiles/${build.profile.id}.profile.properties</filter>
</filters>
[...other properties...]
</build>
<profile>
<id>local</id>
[...stuff...]
<properties>
<build.profile.id>local</build.profile.id> <!-- or qa -->
[...stuff...]
</properties>
</properties>
当我在控制台中运行$mvn clean install-Plocal时,出现以下错误:
无法执行目标。。。在project my project上:加载属性文件“/Users/anthony/workspace/my project/profiles/local.profile.properties”时出错
Maven似乎无法识别我的筛选配置文件属性文件的资源目录。这仅在我显式放置属性文件的整个路径时有效,如下所示:
<filters>
<filter>src/main/resources/profiles/${build.profile.id}.profile.properties</filter>
</filters>
我有没有办法不必显式地声明src/main/resources?我认为我声明一个资源目录的意义在于我可以使用它,特别是用于声明过滤。资源目录只对正在构建的Java工件具有资源的意义,而对Maven本身没有意义。对于Maven来说,resources目录有一个特殊的含义,即Maven知道在结果jar文件中将这些文件复制到哪里。但是对于Maven处理文件或过滤文件,您必须告诉Maven确切的路径,因为Maven不知道过滤后的文件是资源、源文件还是其他文件。另外,您可以定义多个源目录或资源目录,Maven不知道在哪个目录中进行过滤。因此,始终需要为Maven指定完整路径 因此,简言之: 我有没有办法不必显式地声明src/main/resources 没有