私はspotify mavenプラグインを使用してfitnesseドッカー画像を作成し、それをコンテナで実行しています。私はfitnessifyを持ってきて、spotify mavenプラグインとドッカーを使わずにテストをローカルでうまく動かすことができますが、それらを使うときはテストを実行できません。 私はここますFitnesse Error messagespotify mavenプラグインとドッカーで使用したときのフィットネスエラー
を起動したとき、私は次のエラーを取得することは、一般的に、一般的にhttp://blog.xebia.com/fitnesse-and-dependency-management-with-maven/
!contents
ごとに依存関係を解決するの面倒をFrontPageのますFitnesseのwikiの内容です!TEST_SYSTEM {スリム} を定義します!pomFileののpom.xml
は!ここにリリース$ {} FITNESSE_VERSION
に注意しています私のpom.xmlの内容は:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadeTestJar>true</shadeTestJar>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>fitnesseMain.FitNesseMain</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<baseImage>${docker.registry.host.slash}mcpi/service</baseImage>
<entryPoint>["java","-jar","${serviceBin}/${finalJarName}.jar","-p","8000"]</entryPoint>
<imageName>mcpi/${project.name}</imageName>
<runs>
<run>mkdir -p ${serviceHome}</run>
</runs>
<workdir>${serviceHome}</workdir>
<resources>
<resource>
<targetPath>${serviceHome}</targetPath>
<directory>${basedir}/src/test/resources</directory>
</resource>
<resource>
<targetPath>${serviceBin}</targetPath>
<directory>${basedir}/target</directory>
<include>${finalJarName}.jar</include>
</resource>
<resource>
<targetPath>${serviceBin}</targetPath>
<directory>${basedir}/target</directory>
<include>${finalTestJarName}.jar</include>
</resource>
<resource>
<targetPath>${serviceBin}</targetPath>
<directory>${basedir}</directory>
<include>pom.xml</include>
</resource>
</resources>
</configuration>
</plugin>
Spotifyはドッキングウィンドウ-のmaven-プラグインを使用してドッカーしたものを移動しました!pomFileを追加し、jarファイルの場所as_!path path/to/location/* .jar_をwikiに追加しました。フィクスチャクラスを見つけることはできますが、フィクスチャ** java.lang.NoClassDefFoundError:org.springframework.test.context.TestContextManager **で使用している依存関係を解決できません。しかし、私はそれをローカルで実行しても、JarファイルでTestContextManagerクラスを見つけられませんが、その場合はそれについて不平を言っていません。依存関係のないダミーフィクスチャーは正常に動作しています。私のフィットネスプロジェクトの構造はsrc/main/javaの代わりにfitness/src/test/javaです。動作に影響があるかどうかはわかりません。 – Raghu
それは、シェードプラグインがすべての依存関係を見つけられないように思えます(私は、クラスがSpring/xmlを介して参照され、必要な依存関係としてそれらを検出しない直接の原因ではないという事実によって、たぶん、Maven依存プラグイン(コピー依存関係のゴールを使って)がよりうまくいくかもしれません。それは、より大きなドッカー画像を犠牲にして、すべての依存関係(使用されたものだけでなく)を取得します。 ( 'dependency:copy-dependencies'を使うことは、自分のプロジェクトで、フィットネスインストレーションの 'スタンドアローン'版を作るためのアプローチです。) –
それは魅力的です。ありがとう!余分な依存関係を避けるために、** copy-dependencies **で ' true excludeTransitive> 'を使用しました。 –
Raghu