3

ファイルセットで指定された一連のJavaクラスのインプレースJavaFlowインストルメンテーションを実行するMavenMojoを作成しました。つまり、srcfile=destfileです。

プラグインはプロセスクラスフェーズでトリガーします。

mvn clean installを実行すると、これは正常に機能します。ただし、mvn clean installの後にmvninstallを実行すると、クラスファイルが変更されていなくても、処理が再度実行されます。私の場合、これは非常に悪いです... :(

インストルメンテーションを適切に行うため、ファイルのタイムスタンプも実際には使用できません。

コンパイラによって再コンパイルされたファイルでのみ実行するようにmojoに指示する方法が必要です:compile ...何かアイデアはありますか?

4

1 に答える 1

2

StaleSourceScanner を使用してみましたが、思うように動作しませんでした。

そのため、インストルメンテーション後にファイルのチェックサムを実行し、次のビルドステップでそれらをチェックすることになりました。

追加の安全対策として、JavaFlow ソースを変更して、クラスが 2 回計測された場合に例外がスローされるようにしました。

EDIT:実際には、ASMを使用して、クラスがインストルメント化されているかどうかを確認しています...そして、インストルメント化されていない場合は、インストルメント化しないでください。もうチェックサムはありません。

于 2012-06-05T14:18:48.960 に答える