10

最近、私は、そうでなければ長くて退屈なタスクのためにJavaコードを生成するのに役立ついくつかのツールを書きました。私はfreemarkerを使用してテンプレートを作成します。ただし、テンプレート内のすべての空白は出力に保持されるため、コードが非常に乱雑になります。テンプレートからインデントを削除してこれを修正することはできますが、それではテンプレートがかなり保守しにくくなります。

この簡単なサンプルテンプレートを考えてみましょう。

public class MyTestClass
{
    <#list properties as p>
        private String ${p.name};
    </#list>
}

私のテンプレートはうまくフォーマットされていますが、私のコードは次のようになります。

public class MyTestClass
{
        private String prop1;
        private String prop2;
        private String prop3;
}

インデントが少し多すぎるので、次のようにする必要があります。

public class MyTestClass
{
    private String prop1;
    private String prop2;
    private String prop3;
}

これを実現するには、次のようにテンプレートからインデントを削除する必要があります。

public class MyTestClass
{
    <#list properties as p>
    private String ${p.name};
    </#list>
}

この単純なケースでは、テンプレートからインデントを削除することは実際には問題ではありませんが、複雑なテンプレートがまったく読めなくなることを想像できます。

一方では、コードを適切にフォーマットする必要がありますが、他方では、テンプレートも適切にフォーマットする必要があります。私はEclipseをIDEとして使用しており、私の(そして私のチームの)希望に合わせて完全にカスタマイズされた組み込みのフォーマッターを備えています。どういうわけかフリーマーカーテンプレートからコードを生成し、後処理ステップとしてその出力をEclipseのフォーマッターでフォーマットできれば素晴らしいと思います。

もちろん、コードを生成した後、フォーマッターを手動で実行することもできますが、このプロセスを自動化したいのです。

つまり、簡単に言えば、自分のJavaコード内でEclipseのコードフォーマッターを使用する方法を知っている人はいますか?

4

1 に答える 1

4

独自のJavaコードからEclipseフォーマッターを使用する場合は、 MavenJavaフォーマッタープラグインを確認することをお勧めします。

これは、Eclipseコードフォーマット設定ファイルに基づいてソースコードをフォーマットするために使用できるMavenプラグインです。

Mavenを使用したくないが、フォーマットコードを独自のコードに埋め込みたい場合は、FormatterMojoを参照してください。これには、Eclipse Code Formatterを起動するコードが含まれています(Eclipseライブラリーを使用)。

それはすべて無料でオープンソースです。

于 2013-02-09T13:22:49.647 に答える