私は、Maven が正しいツールを提供してくれると思っていた状況に直面しています。私が間違っているか、Maven ;o)
真剣に。
私たちは、サードパーティの lib で動作するソフトウェアを作成しています。これを prod.jar と呼びましょう。この lib には、prod.jar サーバーに接続できる環境が必要です。明らかに、私たちの Jenkins はこのように設定されておらず、設定することもできません。したがって、prod.jar を使用してテストを実行すると、接続をセットアップできないため、すべてが失敗します。
私の考えは、実際の prod.jar のように動作し、simulator.jar と呼ばれる単体テストに使用できるシミュレーターを作成することでした。prod.jar と simulator.jar はどちらも、同じクラス名の同じパッケージを保持しています。機能のみが異なります。開発を可能にし、Jenkins の JUnit 側でできるだけ多くをカバーするために、私はこれを行いました。もちろん、prod.jar に対するテストも行いますが、Jenkins では行いません。
だから私がしたことは、2 つの eclipse プロジェクトを作成することです。
- prod-code: 依存関係として prod.jar を持つ pom.xml を使用
- simulator-code: simulator.jar を依存関係として持つ pom.xml を使用
そのため、メイン プロジェクトへの依存関係として追加するプロジェクトに応じて、シミュレーターまたは prod コードのいずれかが使用されます。それはうまくいきます。
しかし、ビルドに間違った jar が含まれているというエラーが表示されます。
可能であれば、テストプロセス中にシミュレーターを使用し、ビルドプロセス中にprodコードを使用するために、常に同じpomを使用できますが、おそらく異なるmvnパラメーターを使用できるように、mavenをセットアップするにはどうすればよいですか。
Maven プロファイルで試してみましたが、ビルド jar を使用すると、エラーが発生します。
<profiles>
<profile>
<id>simulator</id>
<dependencies>
<dependency>
<groupId>main-project</groupId>
<artifactId>simulator</artifactId>
</dependency>
</dependencies>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>jenkins</id>
<dependency>
<groupId>main-project</groupId>
<artifactId>simulator</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>main-project/groupId>
<artifactId>prod</artifactId>
</dependency>
</dependencies>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>realSystem</id>
<dependencies>
<dependency>
<groupId>main-project</groupId>
<artifactId>prod</artifactId>
</dependency>
</dependencies>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
どんな助けでも感謝します。
よろしくお願いします。