7

現在、私は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;
}
4

1 に答える 1

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と同様に、これよりもはるかに多くの構成を行うことができることに注意してください。

このブログエントリは役に立ちます。

于 2013-01-09T16:07:52.987 に答える