1

ビルド プロセスに Maven を使用する Eclipse の Jackson サービス プロジェクトがあり、単体テストに必要な「テストのみ」のエンドポイントがいくつかありますが、パブリック ビルドでは削除する必要があります。ビルド プロセス (単体テストに合格した後) でエンドポイントがデプロイされないように設定できる注釈またはその他の構成プロパティはありますか?

たとえば、次のようなメソッドがあります。

@GET
@Path("/{user}/addresses")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, Object> getUserAddresses(...){ ... }

これが公開されると、ユーザーアドレスはサードパーティのシステムから取得されますが、テストのためにアドレスを追加する方法が必要なので、

@POST
@Path("/{user}/address")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, Object> createAddress(

しかし、2番目の方法がライブサーバーに存在しないようにしたい.

4

1 に答える 1

1

「テストのみ」のクラスを に入れるだけsrc/test/javaです。src/test/java単体テストしか出てこないという決まりはありません。

このようにして、クラスを除外するために Maven で構成する必要があるものは何もありません。

または、maven-jar-plugin または maven-war-pluginに特定のクラスが最終的なアーティファクトにパッケージ化されないように指示することもできますが、これには、"実際のクラスで「テストのみ」のクラスを使用しているため、jar/war に NoClassDefFoundError を引き起こす何かを出荷します。代わりに「テストのみ」のクラスを配置しsrc/test/java、それらがテスト クラスパス上にのみあることを確認すると、この偶発的なインポートの問題は発生しません (メイン コードのコンパイルは失敗します)。

于 2012-09-28T20:08:06.967 に答える