Eclipseプロジェクトとの継続的統合を使用するにはどうすればよいですか?
-
03-07-2019 - |
質問
私はしばらくの間maven2とhudsonを使用して継続的な統合を行ってきましたが、EclipseとMavenがうまく連携しないことがわかりました。確かにプラグインはありますが、Mavenプロジェクトをeclipseが好むものにマッシュアップするのは面倒で、ビルド時間と単体テストは長すぎます。 私は、アリとメイヴンが関与しない純粋な日食プロジェクトへの切り替えを検討しています。無限のプラグインとJavaRebelエージェントがあれば、ビルドとデプロイとテストのサイクルが非常に高速になります。ただし、自動とテストも引き続き行いたいので、
Eclipseプロジェクトとの継続的統合の使用方法
それを行うコマンドラインの方法はありますか?
既にネイティブにサポートしているビルドサーバーはありますか?
解決 2
良い解決策を見つけました。 mavenとeclipseを使用すると、無限に動作するようになりました(Eclipseマーケットプレイスからインストール可能)
Eclipse->プロジェクトのプロパティ-> Javaビルドパス->ソースで、次のボックスのチェックを外します:"出力を許可 ソースフォルダ用のフォルダ"
これにより、プロジェクトで複数の出力パスを使用できるようになり、Eclipseはテストクラスをクラスパスの一部としてレポートし始めます。 Infinitestはそれを見つけて、テストの実行を開始します!
私がしたことは、公式のMaven Eclipseプラグインを使用して、これをPOMに追加することだけです
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.infinitest</groupId>
<artifactId>infinitest</artifactId>
<scope>test</scope>
<version>4.0</version>
</dependency>
</dependencies>
他のヒント
ええ、Eclipse Maven2プラグインは今のところがらくたです。しかし、あなたがそこに固執することをお勧めします。Maven2を使用することには多くの利点があるので、実際にはバランスが取れています。
やることは、Eclipseを使用して開発し、Mavenを使用して依存関係を管理することです。他のすべては&quot; mvn&quot;を実行することで行われますコマンドラインで。独自の統合テストプロジェクト(...- itest)でテストを保持し、2つのフェーズでビルドを実行し、最初に実際のコードをビルドし、2パスで-itestプロジェクトをビルドして実行する継続的な統合サーバーを使用します。 (通常、最初のパス(純粋なビルド)は非常に高速であり、(テストの実行を伴う)統合テストビルドは通常かなり時間がかかります。)
mvnにテストを実行させるコマンドラインは次のとおりです。
mvn -o verify -Ditest
もちろん、親pomで「itest」プロファイルを定義する必要があります。 次のように言ってください:
<profiles>
<profile>
<id>integration-test</id>
<activation>
<property>
<name>itest</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>itest</id>
</execution>
</executions>
<configuration>
<testSourceDirectory>src/main</testSourceDirectory>
<testClassesDirectory>target/classes</testClassesDirectory>
<forkMode>once</forkMode>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Eclipse + AntとCruiseControlを併用することで、かなりの成功を収めました。自動化が必要な場合は、純粋なEclipse以外のものも必要になるでしょう。
CruiseControlは、ソース管理からプロジェクトのコピーを自動的にチェックアウトし、ビルドし、テストを実行し、結果でWebアプリケーションを更新できます。最後に使ったときはかなり滑らかでしたが、今は昔です。