Ich benutze Spotify Maven Plugin, um ein fitness Docker-Bild zu erstellen und es auf einem Container auszuführen. Ich bin in der Lage, die fitness zu bringen und die Tests erfolgreich lokal ohne Spotify Maven Plugin und Docker ausführen, aber nicht, wenn ich diese benutze. bekomme ich folgende Fehlermeldung, wenn ich die FitNesse Error messageFitnesse Fehler bei Verwendung mit Spotify Maven Plugin und Docker
Hier starten ist der Inhalt von Frontpage FitNesse Wiki die als Abhängigkeit der Lösung pro http://blog.xebia.com/fitnesse-and-dependency-management-with-maven/
!contents
dauert in der Regel im allgemeinen Pflege! Definieren TEST_SYSTEM {schlank} ! pomFile pom.xml
! Anmerkung Mitteilung $ {FITNESSE_VERSION}
Hier ist die Inhalt meines 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>
Ich versuchte Andockfenster mit Entfernen ! pomFile und hinzugefügt jar Dateien Speicherort as_! Pfad Pfad/zu/Ort/*. jar_ auf dem Wiki. Es ist zwar in der Lage, die Fixture-Klasse zu finden, aber die Abhängigkeit, die ich im Fixture verwende, kann ich nicht auflösen ** java.lang.NoClassDefFoundError: org.springframework.test.context.TestContextManager **. Allerdings finde ich die TestContextManager-Klasse nicht im Jar, auch wenn ich sie lokal ausführe, aber in diesem Fall beschwere ich mich nicht darüber. Dummy Fixture ohne Abhängigkeiten funktioniert gut. Meine Fitnesse-Projektstruktur ist fitness/src/test/java anstelle von src/main/java, nicht sicher, ob dies das Verhalten beeinflusst. – Raghu
Es hört sich an, als ob das Schatten-Plugin nicht alle Abhängigkeiten findet (ich hatte ähnliche Probleme in der Vergangenheit, verursacht durch die Tatsache, dass Klassen über Spring/xml referenziert wurden und nicht direkt die Schatten als notwendige Abhängigkeiten auffassten). Vielleicht funktioniert das maven dependency plugin (mit seinem Kopierabhängigkeitsziel) besser für Sie: Das wird alle Abhängigkeiten (nicht nur die verwendeten) auf Kosten eines größeren Docker-Images bekommen. (Die Verwendung von Abhängigkeit: Kopierabhängigkeiten ist auch der Ansatz, den ich in meinen Projekten verwende, um eine Standalone-Version einer Fitnesse-Installation zu erstellen.) –
Das funktioniert wie ein Zauber. Vielen Dank! Ich habe ' true excludeTransitive>' mit ** copy-dependencies ** verwendet, um zusätzliche Abhängigkeiten zu vermeiden. –
Raghu