Konvertieren eines Netbeans-Projekts in ein Maven-fähiges Projekt


78

Wie kann ich ein von Netbeans generiertes Projekt in das Akzeptieren einer Maven-Konfiguration umwandeln? Es gibt Optionen zum Erstellen von Maven-basierten Projekten, aber es gibt nichts (was ich bisher gefunden habe), um vorhandenen Projekten Maven-Abhängigkeiten hinzuzufügen.


Haben Sie das Projekt als Maven-Projekt geöffnet?
Khmarbaise

Mit Netbeans können Sie es nicht als Projekt vom Typ "Maven" öffnen. [
Nun,

Antworten:


71

Sie müssen ein separates Maven-Projekt erstellen. Anschließend können Sie den Code aus Ihrem anderen Projekt in das Maven-Projekt kopieren. Dies kann über die Projektfenster in NetBeans erfolgen.

Wählen Sie einfach die Codedateien / Pakete in der Baumstruktur aus, klicken Sie mit der rechten Maustaste zum Kopieren und fügen Sie sie in die Quellpakete Ihres neuen Maven-Projekts ein.

Öffnen Sie als Nächstes die Dateien, die Maven nicht kompilieren kann, da Abhängigkeiten fehlen. Die gelbe Glühbirne links neben der problematischen Zeile bietet Ihnen die Möglichkeit, nach fehlenden Abhängigkeiten zu suchen und diese Ihrem Projekt hinzuzufügen. Sie müssen online sein, um Suchen durchführen zu können.

Sie können Maven-Abhängigkeiten auch manuell in Ihrem neuen Maven-Projekt hinzufügen, indem Sie mit der rechten Maustaste auf den Ordner "Abhängigkeiten" in den Projektfenstern klicken.


1
Das ist, was ich tat. Es war nicht so schlimm wie ich dachte. Ich mag den neuen Maven-basierten Build.
Mönch

4
Nur ein Hinweis: Wenn Sie den Ruhezustand haben, müssen Sie die Dateien hibernate.cfg.xml und persistence.xml in den neuen Ordner kopieren: src / main / resources / META-INF
ACV

3
Was ist, wenn es mit Git verbunden ist? Was ist die Empfehlung für das Verzweigen und Verfolgen von zusammengeführten Dateien, anstatt einen neuen Master zu erstellen, wie man damit
umgeht

Kann es Eclipse nicht mögen, nachdem Sie ein dynamisches Webprojekt erstellt und es dann in Maven konvertiert haben? Ich habe festgestellt, dass Netbeans diese hilfreiche Funktion in letzter Zeit vermisst.
Stu_Dent

15

Wenn Sie mit maven vertraut sind, können Sie maven auch später immer konfigurieren, dies wird jedoch nicht empfohlen.

Der einzige Grund, warum Leute (einschließlich mir;)) empfehlen, ein neues Maven-Projekt zu erstellen, ist, dass Maven eine eigene Verzeichnisstruktur hat. Und das ist Standard. Wenn Sie jetzt maven für Ihr Projekt zu einem späteren Zeitpunkt aktivieren möchten, können Sie die Dinge in pom.xml konfigurieren, dh Ihr Quellverzeichnis, Zielverzeichnis und Web-App-Verzeichnis (falls zutreffend).

Ich hatte ein großes Projekt in SVN und durfte kein neues Projekt erstellen. Ich wollte die lib-Verwaltung nicht unterstützen und habe daher maven gemäß meiner Verzeichnisstruktur konfiguriert.

Hier ist der Teil meiner pom.xml

    <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>testpackages</testSourceDirectory>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <plugins>
        <plugin>
            <version>2.3.2</version>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <webResources>
                    <resource>
                        <!-- this is relative to the pom.xml directory -->
                        <directory>web-root</directory>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

Könnten Sie bitte mehr erklären?
Tomáš Zato - Stellen Sie Monica

1
Wenn sich Ihre Verzeichnisstruktur vom Standard-Maven-Projekt unterscheidet, müssen Sie sie konfigurieren. Maven verwendet implizit mehrere Plugins, die die Standardverzeichnisstruktur erwarten. Wenn Sie also eine andere Struktur haben, müssen Sie diese Plugins konfigurieren und die Kontrolle über den Erstellungsprozess übernehmen. Beispiel: Meine Webquellen befinden sich direkt im Webstammordner. Dann musste ich das Maven War Plugin entsprechend konfigurieren.
Tejas

Es wird sourceDirectoryals ungültig gemeldet :(
Tomáš Zato - Monica am

9

Ich befolge die folgenden Schritte für meine Desktop-Java-Anwendung (sichern Sie Ihr Projekt, bevor Sie dies tun):

  1. Öffnen Sie Ihr Projekt in Eclipse (indem Sie zu einem neuen Projekt gehen und zu Ihrem Projekt navigieren). Das Importieren des Projekts funktioniert nicht.

  2. Aktivieren Sie maven für dieses Projekt

  3. Abhängigkeitsbibliothek hinzufügen

  4. Schließen Sie Ihr Projekt

  5. Löschen Sie den NBProjectOrdner und Build.xmlvom Projektspeicherort (andernfalls kann NetBeans ihn nicht als Maven-Projekt erkennen).

  6. Öffnen Sie dieses Projekt in NetBeans


2
Das OP war spezifisch, er wollte Informationen über die Netbeans IDE nicht Eclipes
Narrim

15
Er verwendet nur vorübergehend Eclispe, um Maven im Projekt zu aktivieren.
Tejas

2
Es funktioniert auch dann gut, wenn Sie mithilfe von Git ein Remote-Repository projizieren. Wenn Sie fertig sind, müssen Sie nur noch festschreiben und pushen. Sehr hilfreich, danke.
Shondeslitch

0

@JVerstry-Antwort verbessern .. Ich füge eine weitere Lösung hinzu, die hier in Schritten nicht erklärt wird.

Erstellen Sie ein neues Maven-Projekt in Netbeans. Kopieren Sie dann Ihren Quellcode und fügen Sie ihn in Ihren Maven-Ordner ein. Dies kann in Netbeans IDE Projects View Itself erfolgen. Danach folgen Sie diesen Schritten.

  1. Fügen Sie SPRING MVC-Abhängigkeiten hinzu.
  2. Fügen Sie Ihrem Eigenschaftenbereich die Spring MVC-Version hinzu (abhängig von Punkt 1).
  3. Konfigurieren Sie dispatcher-servlet.xml und web.xml in Ihrem Spring-Ordner.
  4. Der Rest besteht darin, Ihren Hauptcontroller und Ihre JSP / HTML-Seite abzugleichen und zu konfigurieren.
  5. Überprüfen Sie Ihre Homepage, indem Sie ausführen.

Punkt 1 :

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-web</artifactId>
   <version>${spring.version}</version>
</dependency>

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>${spring.version}</version>
</dependency>

Punkt 2 : und fügen Sie spring.version zu Ihrem Eigenschaftenbereich hinzu

<properties>
    <spring.version>4.0.2.RELEASE</spring.version>
</properties>

Punkt 3 : Erstellen Sie unter dem Ordner WEB-INF eine Datei mit dem Namen dispatcher-servlet.xml . Öffnen Sie die Datei und kopieren Sie den folgenden Code.

<?xml version="1.0" encoding="UTF-8"?>
   <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<mvc:annotation-driven />
<context:component-scan base-package="com.youbequityweb.controllers" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>
</beans>

Das deklariert Support Annotation Driven MVC wie @Controller, @Service, @Component.

Das bedeutet, Klassen aus diesem Basispaket zu scannen, um alle Bean-Klassen zu bestimmen.

Der Ansichtsauflöser gibt die Positionen unserer Ansichten (jsp) und die Erweiterung an. Fügen Sie in Ihrer web.xml die Federkonfigurationen im Web-App- Bereich hinzu.

<!--Spring Config-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
<listener>    <listenerclass>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-  class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Punkt 4 : Dies ist schwierig . Verknüpfen Sie jetzt Ihren vorhandenen Hauptcontroller mit dem Basispaket, das in dispatcher-servlet.xml definiert ist . Beispiel: HomeController.java wird unten gezeigt.

package com.youbequityweb.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HomeController {

@RequestMapping(value="/home", method = RequestMethod.GET)
    public String viewHome(){
    return "home";
    }
}

Punkt 5 : Klicken Sie in NetBeans jetzt mit der rechten Maustaste, wählen Sie Bereinigen und Erstellen, entfernen Sie Warnungen und Konflikte und führen Sie dann Ihre Spring MVC-Anwendung aus, um Ergebnisse zu erzielen.


0

Ich habe zufällig herausgefunden, warum Netbeans 8.2. öffnet Projekte als Netbeans-Projekte anstelle von Maven-Projekten; Nachdem Sie die Netbeans- und Ant-spezifischen Dateien gelöscht haben, ersetzen Sie sie durch den korrekt geformten Pom.

Netbeans scheint die Projekttypen für bereits geöffnete Projekte zwischenzuspeichern. Dies kann durch Löschen des Caches behoben werden.

Windows befindet sich hier:

C:\Users\${username}\AppData\Local\NetBeans\Cache

Linux hier:

~/.cache/netbeans/${netbeans_version}/index/

Mac hier:

~/Library/Caches/NetBeans/${netbeans_version}/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.