1

最近、プロジェクトにcoberturaプラグインを含めようとしました。しかし、私は奇妙な問題に遭遇しました。今、私がこれをやろうとすると:

mvn clean package cobertura:check-integration-test

私のプロジェクトは問題なく組み立てられます。しかし、ここにデプロイした後、メッセージとして受け取るものは次のとおりです。

java.lang.NoClassDefFoundError: ネット/sourceforge/cobertura/coveragedata/LightClassmapListener

これは、私が理解しているように、cobertura がクラスのバイトコードを変更するために発生します。では、チェックとコードのビルドをどのように進めればよいでしょうか。現在、teamcity の次のソリューションを考え出しています。

最初のステップで cobertura を実行します。

mvn clean package cobertura:check-integration-test

その 2 番目のステップの後、通常のアセンブリが実行されます。

mvn clean package

これは機能しているように見えますが、cobertura プラグインの影響を受けないバイトコードを使用してクリーンなビルドを作成するために、パッケージ化のプロセスを 2 回実行する必要があるのは奇妙に思えます (これには 2 倍の時間がかかります)。

4

1 に答える 1

0

を使用するqualinsight-mojo-coberturaと、インストルメンテーション時にクラスがバックアップされ、レポート作成時に復元されます (その結果、生成されたパッケージにインストルメント化されていないクラスが含まれます)。

インストルメンテーションとレポートの間に、必要に応じてテスト (UT、IT) を実行します ( とは異なりmaven-cobertura-pluginqualinsight-mojo-coberturaテストは実行されません)。詳細については、プロジェクト ページを確認してください (特に、プラグインがデフォルトでバインドされている Maven フェーズ)。

于 2016-06-17T09:19:40.850 に答える