web-dev-qa-db-ja.com

NetbeansプロジェクトをMaven対応プロジェクトに変換する

Netbeans生成プロジェクトをMaven構成の受け入れに移行するにはどうすればよいですか? Mavenベースのプロジェクトを作成するオプションはありますが、Mavenの依存関係を既存のプロジェクトに追加するものはありません(これまでのところ見つけたものはありません)。

73
monksy

別のMavenプロジェクトを作成する必要があります。次に、他のプロジェクトからMavenプロジェクトにコードをコピーできます。これは、NetBeansの「プロジェクト」ウィンドウから実行できます。

ツリーでコードファイル/パッケージを選択し、右クリックしてコピーし、新しいMavenプロジェクトのソースパッケージに貼り付けます。

次に、Mavenが依存関係を見逃してコンパイルできないファイルを開きます。問題のある行の左側にある黄色の電球は、不足している依存関係を検索してプロジェクトに追加するオプションを提供します。検索を実行するにはオンラインである必要があります。

[プロジェクト]ウィンドウで依存関係フォルダーを右クリックして、新しいMavenプロジェクトにmaven依存関係を手動で追加することもできます。

64

Mavenに慣れている場合は、後からでもMavenをいつでも構成できますが、お勧めしません。

(私を含む;))の背後にある唯一の理由は、新しいMavenプロジェクトを作成することをお勧めします。Mavenには独自のディレクトリ構造があるためです。それが標準です。プロジェクトのMavenを後の段階で有効にしたい場合は、pom.xmlで設定することができます。つまり、ソースディレクトリ、ターゲットディレクトリ、およびWebアプリディレクトリ(該当する場合)

SVNに大規模なプロジェクトがあり、新しいプロジェクトを作成することはできませんでした。 lib管理をサポートしたくなかったので、ディレクトリ構造に従ってmavenを設定しました。

これが私の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>
15
Tejas

私のデスクトップJava application(これを行う前にプロジェクトをバックアップしてください):

  1. Eclipseでプロジェクトを開きます(新しいプロジェクトに移動して、プロジェクトを参照します)。プロジェクトのインポートは機能しません。

  2. このプロジェクトのMavenを有効にします

  3. 依存関係ライブラリを追加

  4. プロジェクトを閉じます

  5. NBProjectフォルダーとBuild.xmlプロジェクトの場所から(そうでない場合、NetBeansはそれをMavenプロジェクトとして認識できません)。

  6. NetBeansでこのプロジェクトを開きます

9
Harsh kurra

私は偶然、Netbeans 8.2の理由を発見しました。 MavenプロジェクトではなくNetbeansプロジェクトとしてプロジェクトを開きます。 netbeansとant固有のファイルを削除した後、それらを正しい形式のpomに置き換えます。

Netbeansは、既に開いているプロジェクトのプロジェクトタイプをキャッシュするようです。これは、上記のキャッシュを削除することで解決できます。

Windowsは次の場所にあります。

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

ここにLinux:

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

ここにMac:

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

0
Kat

@JVerstry回答の改善..を追加しますステップで説明されていない別のソリューション

Netbeansで新しいMavenプロジェクトを作成します。次に、ソースコードをコピーしてmavenフォルダーに貼り付けます。Netbeansで実行できますIDE Projects View Itself。この後、これらの手順に従ってください。

  1. SPRING MVC依存関係を追加します。
  2. プロパティセクションにSpring MVCバージョンを追加(ポイント1に依存)
  3. Spring Folderでdispatcher-servlet.xmlおよびweb.xmlを構成します。
  4. 残りは、メインのコントローラーとJSP/HTMLページのマッチングと構成を行うことです。
  5. 実行してホームページを確認してください。

ポイント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>

ポイント2:プロパティセクションにspring.versionを追加します

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

ポイントWEB-INFフォルダーの下で、dispatcher-servlet.xmlという名前のファイルを作成します。ファイルを開き、次のコードをコピーします。

<?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>

宣言は、@ Controller、@Service、@Component。を使用したアノテーション駆動型mvcなどをサポートします。

この基本パッケージからクラスをスキャンして、すべてのBeanクラスを決定する手段。

ビューリゾルバーは、ビュー(jsp)と拡張機能の場所を指定します。 web.xmlで、web-appセクション内にスプリング設定を追加します。

<!--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>

ポイント4:これは注意が必要です。既存のメインコントローラーをdispatcher-servlet.xmlで定義されたベースパッケージにリンクします。例:HomeController.Java以下に示す。

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";
    }
}

ポイント5NetBeansで、右クリックして、クリーンとビルドを選択し、警告や競合がある場合は逃げ、Spring MVCアプリケーションを実行して結果を出します。

0
NadZ