Software Configuration Management

Software Configuration Management

Posts 1-3 of 3
  • Oliver Gierke
    Oliver Gierke    Premium Member
    The company name is only visible to registered members.
    Maven2: Dependency zu Klassen im Testordner eines Moduls
    Hallo zusammen,

    ich habe folgendes Problem: ich habe ein Modul A, dessen Testordner einige Utilityklassen für das Testen bereitstellt. Die Testklassen eines Moduls B benutzen diese Klassen. In Eclipse kompiliert das ganze prima, da das nur die Abhängigkeit Modul B -> Modul A kennt und somit der Testordner des Moduls A auch im Classpath liegt, wenn die Tests von Modul B ausgeführt werden.

    In Maven habe ich natürlich die Dependency von Modul B zu Modul A deklariert, allerdings bezieht sie sich ja nur auf das fertig gebaute JAR, was keine Klassen aus dem Testordner enthält.

    Folgende Lösungsmöglichkeiten habe ich mir überlegt:

    1. Den Pfad zum Testordner von A mit in das <testResources> Element mit aufnehmen. Ist ein wenig hässlich, da ich damit vorraussetze, dass Modul A auch mit ausgecheckt ist.

    2. Die Testutilityklassen in ein eigenes Projekt auslagern und das den Modulen A und B als Dependency mit test scope hinzufügen.
    Sieht elegant aus, funktioniert aber nicht, da die Utilityklassen von Klassen aus Modul A Gebrauch machen und ich somit eine zyklische Abhängigkeit zwischen den Modulen hätte.

    Die Utilityklassen mit in den Sourcebaum des Moduls A zu legen halte ich ebenfalls für unschön, da sie meiner Meinung nach nichts im Produktivcode zu suchen haben.

    Hat irgendwer vielleicht noch eine kreative Idee?

    Gruß
    Ollie
  • Oliver Gierke
    Oliver Gierke    Premium Member
    The company name is only visible to registered members.
    Re: Maven2: Dependency zu Klassen im Testordner eines Moduls
    Ich habe das Problem gelöst bekommen.

    Man trägt im POM des "Server" Projektes das maven-jar-plugin ein und definiert als goal "test-jar". Auf der "Clientseite" kann man das Serverprojekt als Dependency angeben und mit "type" "test-jar" eben dieses jar referenzieren.

    Vielen Dank an Eberhard Wolff für den Hinweis!

    Gruß
    Ollie
  • Andreas Kanzlers
    Andreas Kanzlers
    The company name is only visible to registered members.
    Re^2: Maven2: Dependency zu Klassen im Testordner eines Moduls
    Vielen Dank für die Bereitstellung der Lösung. Ich hatte soeben genau das gleiche Problem.
    Nach "install" bzw. "deploy" des Server-Projekts kann dann auch das Client-Projekt wieder kompilieren.

    Grüße,
    Andreas