15

カスタムの前処理が必要な Java ソース コードが多数あります。処分したいのですが、今は無理なのでやめておきます。そもそも存在してはならない不幸な問題があることを考えると、maven を使用してどのように解決すればよいでしょうか?

(完全な話として、私はpythonベースのビルドシステムをmavenのものに置き換えているので、一度に1つの改善をお願いします。非標準のソースコードを修正するのは難しいので、後で行います。)

既存の Maven プラグインを使用して、コンパイル時にソース ファイルを実際に変更することは可能ですか? (明らかに、元の未処理のコードをそのままにしておきます)

明確にするために、前処理とは、アンテナまたは C コンパイラがコードを前処理するのと同じ意味での前処理を意味し、カスタムとは、完全に独自のものであり、C またはアンテナの前処理とはまったく似ていないことを意味します。

4

3 に答える 3

9

MAVENをサポートするJavaプリプロセッサがあります:java-comment-preprocessor

于 2011-12-05T13:43:01.033 に答える
8

これは非常に実行可能なことであり、私は過去に非常に似たようなことをしました。

ソースを処理する外部プログラムを実行するために antrun プラグインを使用した私のプロジェクトの例:

  <build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <id>process-sources</id>
          <phase>process-sources</phase>
          <configuration>
            <tasks>
               <!-- Put the code to run the program here -->
            </tasks>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

これが実行されるフェーズを示すタグに注意してください。Maven でのライフサイクルのドキュメントはこちらです。もう 1 つのオプションは、これを行う独自の Maven プラグインを実際に作成することです。もう少し複雑ですが、実行可能です。ここで説明したものと同様に構成します。

于 2008-10-09T21:34:14.360 に答える
2

Maven プラグインは、プリコンパイル時にビルド プロセスにフックできます。既存のプラグインが役立つかどうかはわかりません。

私は数年前に大学のプロジェクトの一環として Maven プラグインを作成しました。当時はドキュメントが少し不足していましたが、それほど複雑ではありませんでした。アイデアやコードを取り込めるオープン ソース プロジェクトはたくさんあるはずです (たとえば、私たちのプロジェクトは BSD ライセンスでした...)。

于 2008-10-09T16:06:17.703 に答える