4

ほとんどが Axis2 スタブ、スケルトンなどである自動生成されたクラスがたくさんあります。一部の複雑な wsdl では、Axis2 は Java Bean、スタブなどの TON を生成します。また、自動生成が使用される他のケースもあると確信しています。

今のところ、これらをコード ベースの他のファースト クラス メンバーとして扱い、同じパッケージに格納します。

ただし、リファクタリングやクリーンアップなどを行うと、これらの自動生成されたクラスからの警告を取り除くのが難しくなります。たとえば、Java1.5ジェネリックを使用するためにコードをクリーンアップしようとしている場合、これらの問題のあるクラスのいくつが私たちのものであるか、自動生成されているかを知る良い方法はありません.

これらの自動生成されたパーツを別のパッケージに分離する必要がありますか? そのようなアーティファクトをリポジトリにどのように保存しますか?

編集:以下のかなりの数の回答で「ビルドプロセス中に生成」が表示されます。そうすることの利点はわかりますが、リポジトリのチェックインから逃れる方法がよくわかりません。

私のコードには、これらのクラスのいくつかに対するコンパイル時の依存関係があり、私にとって、開発中のビルドは Eclipse の「ctrl-s」です。Ant スクリプトを使用して、コンパイルを生成し、テストを実行し、成果物を生成します。

4

6 に答える 6

7

ベストプラクティスの概要:

  • 繰り返し可能にする
    • ビルドプロセスの一部として生成されたコードを作成します。
    • 生成されたコードをソース管理にチェックインしないでください。(ソースをチェックインしてください。例:WSDL)
  • 生成されたコードをマネージコードから分離してください
    • 生成された出力には別のソースフォルダーを使用します。
    • この生成されたコードが依存関係になるように、別の.jarを提供します。
    • 別のIDEプロジェクト(またはMavenモジュール)の使用を検討してください
于 2009-06-04T14:21:27.443 に答える
6

これらのファイルを独自のプロジェクトに入れました。このようにして、ビルド ファイル、必要なすべてのパッチなどを 1 か所に追加し、生成されたコードのすべての警告をオフにすることができます。

于 2009-06-04T12:01:17.990 に答える
6

同じパッケージを保持しながら、別のソース フォルダー (生成された src など) を使用することができます。生成されたコードをソース コード リポジトリに保存するという全体的なアイデアについては、実際のところ、私は確信が持てません。プロジェクトの他の開発者の便宜のためにこれを行いますが、ビルド プロセスの一部としてソース コードを再生成することは、通常は理にかなっています。この生成されたコードが変更される可能性が低い場合は、別のプロジェクトを使用して jar を生成する方が実用的かもしれません。

于 2009-06-04T12:13:24.173 に答える
2

それらをソース管理システムにチェックインする場合は、しないでください。ビルドステップによって再生成されるようにします。それらが WSDL から生成された場合は、結果のコードではなく、WSDL をチェックインしてください。

そのビルドステップで、生成されたコード用に完全に別個の .jar を生成し、ソースファイルを削除することをお勧めします。これは、メンテナーが自動生成されたソースを手動で編集しようとする可能性をできるだけ低くするためです。

そうすれば、リファクタリング アクティビティでは、自動生成されたコードが、操作されるソースではなく、サード パーティのライブラリのように見えます。

于 2009-06-04T12:11:00.387 に答える
1

生成されたアーティファクトのセットごとに、生成を実行する新しいプロジェクトを作成し、アーティファクトを JAR ファイルとソース ZIP ファイルにバンドルしてから、アプリからそれらを参照します。物事を適切に分離し、生成されたアーティファクトが IDE によって変更されるものではないという事実を強調します。

于 2009-06-04T12:08:54.777 に答える
0

maven と axistools-maven-plugin を使用すると、生成されたソースは「ターゲット」ディレクトリの別のソース フォルダーに配置されます。このターゲット ディレクトリは、maven がすべてのファイルやその他のものを生成する場所であるため、クリーニングすることができます。
生成されたファイルは IDE 内の別のソース フォルダーにも表示されるため、これは非常に便利です。

于 2009-06-04T12:18:05.570 に答える