2017-03-07 2 views
0

Ich habe ein Multi-Modul-Maven-Projekt mit der folgenden StrukturWie wird jqassistent in einem Projekt mit mehreren Modulen mit einem übergeordneten Element verwendet, das parallel zum Modul gespeichert wird?

myProject 
    + parent 
     - pom.xml 
    + moduleA 
     - pom.xml 
    + moduleB 
     - pom.xml 

I jqassistant im übergeordneten Verzeichnis die gleiche Art und Weise habe ich in einem einfachen Projekt konfigurieren würde. Aber ich denke, dass es keine Klassen finden würde. Muss ich wirklich alle Modulreferenzen erneut mit

<scanIncludes> 
    <scanInclude> 
     <path>../moduleA/target/classes</path> 
     <scope>java:classpath</scope> 
    </scanInclude> 
</scanIncludes> 

deklarieren oder gibt es einen saubereren Ansatz? Muss ich zusätzliche Schritte machen?

Antwort

0

Es sind keine speziellen Scan-Includes erforderlich. Es ist jedoch erforderlich, jqassistant.useExecutionRootAsProjectRoot auf true zu setzen. Dies kann über die Systemeigenschaft -Djqassistant.useExecutionRootAsProjectRoot oder <useExecutionRootAsProjectRoot>true</useExecutionRootAsProjectRoot> im Konfigurationsbereich der pom.xml erfolgen. Wenn Sie ein jquassitant-Ziel direkt ausführen, z. B. jqassistant:server, müssen Sie die Systemeigenschaft festlegen. Wenn Sie oft mvn clean install verwenden, ist es wichtig, die neo4j-Datenbank außerhalb des Zielverzeichnisses zu speichern. Andernfalls wird die letzte Reinigung fehlschlagen. Sie können dies mit <storeDirectory>${project.build.directory}/../../store</storeDirectory> erreichen. Mit -DstoreDirectory scheint es nicht zu funktionieren.

0

Wenn Ihre Module (d. H. ModuleA und moduleB) über das parent-Element ihrer pom.files auf das übergeordnete Element verweisen, reicht es aus, das jQAssistant Maven-Plugin dort im Abschnitt plugins zu deklarieren. Ein Beispiel für ein Multi-Modul-Projekt finden Sie unter https://github.com/buschmais/extended-objects/.

+0

Es funktioniert nicht für mich. Ich bekomme 'Execution default von Ziel com.bu ..... jqassistant: jqassistant-maven-plugin: 1.2.0: Scan fehlgeschlagen: Fehler beim Starten von org.neo4j.kernel.impl.factory.CommunityFacadeFactory, ... Parent \ target \ jqassistant \ store: Die Komponente '[email protected]' wurde erfolgreich initialisiert, konnte jedoch nicht gestartet werden. Bitte beachten Sie die beigefügte Ursache Ausnahme. Die Sperre für die Speichersperrdatei konnte nicht abgerufen werden: ..Parent \ target \ jqassistant \ store \ store_lock. Bitte stellen Sie sicher, dass kein anderer Prozess diese Datenbank verwendet und dass das Verzeichnis beschreibbar ist (...): OverlappingFileLockException' – niels

+0

Können Sie "mvn install -Djqassistant.useExecutionRootAsProjectRoot" vom Stammmodul (myProject) ausführen? –

+0

Das Problem wurde gelöst. Wie auch immer 'mvn clean installieren -Djqassistant.useExecutionRootAsProjectRoot' funktioniert nicht. Ich denke deshalb muss ich den Laden in ein anderes Verzeichnis legen. Muss es später untersuchen. – niels

Verwandte Themen