2016-04-05 6 views
0

Nach dem Erstellen eines neuen Vaadin 7.6.4-Projekts in NetBeans 8.1 mit Vaadin plugin for NetBeans und dem bereitgestellten multi-modulearchetype with 4 modules, wo fügt man eine Abhängigkeit für das Hinzufügen von Bibliotheken hinzu?Wo können Maven-Abhängigkeiten in einem Multi-Modul-Vaadin-Projekt in NetBeans 8 hinzugefügt werden?

Ist die -ui "Abhängigkeiten" der richtige Ort? Wird das vom Modul -production übernommen? Oder muss ich dort auch die Abhängigkeit angeben? Oder anderswo?

Ich bin kein Maven Maven, nicht mit der Maven-Kommandozeile. Ich benutze NetBeans eigene Benutzeroberfläche, Hinzufügen von Abhängigkeiten durch Kontext-Klick im Projects Panel.

+0

Abhängigkeiten werden in der Regel in der Datei pom.xml für Maven-Projekte hinzugefügt. –

+1

Diese Frage bezieht sich auf Projekte mit mehreren Modulen mit mehreren POMs. –

+0

Ja, also haben Sie mehrere 'pom.xml' Dateien, fügen Sie einfach die Bibliotheken in den richtigen Dateien hinzu. Zum Beispiel benötigen das Widgetset und das Elternteil normalerweise keine Jar-Bibliotheken. –

Antwort

1

Ja, das ist schlecht dokumentiert. Einverstanden.

Ja, das -ui Modul ist, wo Sie alle Ihre Arbeit tun und Ihre Abhängigkeiten hinzufügen (außer Vaadin Add-ons). Das -production Modul erbt automatisch -ui, so dass Sie niemals etwas am Produktionsmodul ändern.

Das Projekt -widgetset ist, wo Vaadin Add-ons hinzugefügt werden sollen. Allerdings mache ich das nicht direkt, stattdessen benutze ich den Netbeans Vaadin Add-on Browser. Dieser kann von jedem beliebigen Modul in Ihrem Multi-Modul-Projekt aktiviert werden. Selbst wenn Sie es auf dem Modul -ui aktivieren, wird es herausfinden, dass Sie ein Vaadin Add-on hinzufügen und die Abhängigkeit zum POM auf dem -widgetset hinzufügen Projekt, nicht das eine Modul, das Sie mit der rechten Maustaste angeklickt haben. Süss.

Es gibt auch einen nervigen Bug, wenn Sie den Multi-Modul-Archetyp verwenden, was bedeutet, dass Ihr generierter WAR-Wert ohne großen Grund sehr groß sein wird.Siehe https://stackoverflow.com/a/35406389/1504556. Die Lösung ist einfach.

+0

Wie aktiviert man den * Netbeans Vaadin Add-on Browser *? (und danke für Ihre hilfreiche Antwort) –

+0

@BasilBourque: Klicken Sie mit der rechten Maustaste auf den '-ui' Projektknoten in NetBeans. Dann Vaadin -> Öffnen Add-Ons Browser. Es ist wirklich nur möglich, dass Sie nach Vaadin Add-Ons suchen können und dann, wenn Sie ausgewählt sind, wird das POM für Sie geändert. All dies können Sie auch manuell tun. Es ist nur eine nette Annehmlichkeit. – peterh

1

Ich arbeite an einem sehr ähnlichen Projekt. Wenn Sie Eltern und Abhängigkeiten haben, erbt Maven diese Abhängigkeiten von Kind zu Eltern. So beziehen sich auf jede Abhängigkeit in der Basis pom des Moduls, das Sie brauchen es in Ein Beispiel wäre:.

Modul A muss Abhängigkeit Z

Modul B Abhängigkeit Y benötigt

Modul C Bedürfnisse Abhängigkeit Z und Y

und Ihre Module stützen sich auf:

Elternteil muss A, B, C

C B benötigt

So in B würden Eingabe die Abhängigkeit von Y, in C Sie die Abhängigkeit von B benötigen würde und Z in A auch Z brauchen würde,

.

C braucht nicht Y erklärt, wie sie es von B

die großen Probleme geerbt hat man bekommen könnte mit Kreuz Vererbung zu tun, müssen Sie manchmal bestimmte Module sagen einige Dateien, auf die von vererbt werden andere JAR-Dateien, z. B. alte Versionen von Dateien. Sie können dies durch:

<dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.2.0.Final</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

Als ein Beispiel. Hoffe, das hilft ein wenig