Java注释的Maven-properties-filtering-like?

时间:2013-01-09 16:03:36

标签: java spring maven properties filtering

目前,我知道如何使用Maven进行这种过滤:

的pom.xml

<properties>
    <foo>bar</foo>
</properties>

app.properties

foo=${foo}

但是可以使用Maven,Spring或其他任何工具进行这种过滤吗?

MyClass.java

@MyAnnotation("${foo}") // ${foo} should get replaced at compile time
public void getData() {
    return data;
}

1 个答案:

答案 0 :(得分:7)

您是否尝试过执行资源插件?据我所知,您可以将它指向Java源并使用其常规过滤。

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

  <properties>
    <my.name>chad</my.name>
    <java.property>//comment</java.property>
  </properties>

  <build>
    <sourceDirectory>target/processed-source/java</sourceDirectory>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>

         <resource>
            <directory>src/main/java</directory>
            <filtering>true</filtering>
            <targetPath>../processed-source/java</targetPath>
        </resource>
    </resources>

  </build>

因此,首先要将已处理的java源路由到目标目录中的特殊文件夹。接下来,您必须重新配置编译器插件,以便不编译未过滤的源,而是编译新的源。请注意,与所有maven一样,您可以配置比这更多的东西。

blog entry非常有用。