新しいプロジェクトの構造を作成したいと考えており、Gradle でビルドするつもりです。ソースとテストを 1 つのプロジェクトに配置すると、MoreUnit のようなプラグインが簡単に処理し、必要な場所にクラスのテストを作成できることを既に知っています。
ただし、プロジェクトが相互に依存する複数のサブプロジェクトで構成されている場合、厄介な依存関係の問題が発生します。正確には、プロジェクト A のテストで共通コードを使用し、プロジェクト BI のテストで再利用する場合は、次のような回避策を講じる必要がありました。
project(':B') {
// ...
dependencies {
// ...
if (noEclipseTask) {
testCompile project(':A').sourceSets.test.output
}
}
}
時には評価の問題もあったため、別のハックを導入する必要がありました。
project(':B') {
evaluationDependsOn(':A')
}
これを 2 つの別々のプロジェクトに分割すると、その問題は解消されましたが、MoreUnit は新しいテスト ファイルを作成する場所を追跡できなくなり、どのメソッドがテストされたかをマークすることができなくなりました。私はそれを修正できるようにする MoreUnit 設定で何も見つけられなかったので、Gradle 側からこれを修正しようとしています。
project/src/java
複数のサブプロジェクト、ソース、およびテストを Maven のような方法 ( 、 )で配置できるように調整できますproject/test/java
が、テストとソースは別々のアーティファクトを作成しますか? 間違った問題を解決している場合、正しい問題をどのように解決すればよいでしょうか?