Перетворення проекту Netbeans на проект із підтримкою Maven


78

Як я можу перевести проект, створений Netbeans, на прийняття конфігурації Maven? Є варіанти створення проектів на основі Maven, але немає нічого (що я знайшов на сьогодні) для додавання залежностей Maven до існуючих проектів.


Ви відкривали проект як проект Maven?
khmarbaise

Netbeans не дозволяє вам відкрити його як проект "набраний Maven". [ну це не дає вам можливості "відкрити як"]
monksy

Відповіді:


71

Вам потрібно створити окремий проект Maven. Потім ви можете скопіювати код іншого проекту до проекту Maven. Це можна зробити у вікнах проектів у NetBeans.

Просто виберіть файли / пакети коду в дереві, клацніть правою кнопкою миші для копіювання, а потім вставте їх у вихідні пакети нового проекту Maven.

Далі відкрийте файли, які Maven не зможе скомпілювати, оскільки вони пропускають залежності. Жовта лампочка зліва від проблемної лінії дасть вам варіанти пошуку відсутніх залежностей та додавання їх до вашого проекту. Для пошуку потрібно бути в Інтернеті.

Ви також можете додати залежності maven вручну у своєму новому проекті Maven, клацнувши правою кнопкою миші папку залежностей у вікнах Проекти.


1
Ось що я зробив. Це було не так погано, як я думав. Мені подобається нова побудова на основі Maven.
monksy

4
Тільки примітка: якщо у вас сплячий режим, вам потрібно буде скопіювати файли hibernate.cfg.xml та persistence.xml у нову папку: src / main / resources / META-INF
ACV

3
а що якби його підключили до git яка рекомендація щодо розгалуження та відстеження об’єднаних файлів, замість того, щоб створювати нового майстра, як з цим обробляти, будь ласка
shareef

Чи не може це подобатися Eclipse після того, як ви створюєте динамічний веб-проект, а потім перетворюєте його на Maven? Останнім часом я виявив, що в Netbeans відсутня ця корисна функція.
Stu_Dent

15

Якщо ви знайомі з maven, ви завжди можете налаштувати maven навіть пізніше, однак це не рекомендується.

єдина причина, за якою люди (включаючи мене;)) рекомендують створити новий проект maven - це Maven має власну структуру каталогів. І це стандартно. тепер, якщо ви хочете увімкнути maven для вашого проекту на більш пізньому етапі, тоді ви можете налаштувати речі в pom.xml, тобто ваш вихідний каталог, цільовий каталог та каталог веб-програми (якщо це можливо)

У мене був великий проект у SVN, і мені заборонили створювати новий проект. Я не хотів підтримувати управління бібліотеками, тому я налаштував 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>

Не могли б ви пояснити більше, будь ласка?
Томаш Зато - відновити Моніку

1
якщо ваша структура каталогів відрізняється від стандартного проекту maven, вам доведеться її налаштувати. Maven неявно використовує кілька плагінів, які очікують на стандартну структуру каталогів. Отже, коли у вас інша структура, вам потрібно налаштувати ці плагіни та взяти під контроль процес збірки. Наприклад, мої веб-джерела знаходяться безпосередньо у веб-кореневій папці, тоді мені довелося відповідно налаштувати плагін maven war.
Техас

Повідомляється sourceDirectoryяк недійсний :(
Томаш Зато - відновити Моніку

9

Я виконую ці кроки для моєї настільної програми Java (перед цим виконайте резервне копіювання проекту):

  1. Відкрийте свій проект у Eclipse (перейшовши до нового проекту та переглянувши ваш проект). Імпорт проекту не буде працювати.

  2. Увімкнути maven для цього проекту

  3. Додайте бібліотеку залежностей

  4. Закрийте свій проект

  5. Видаліть NBProjectпапку та Build.xmlз розташування проекту (інакше NetBeans не зможе розпізнати її як проект maven).

  6. Відкрийте цей проект у NetBeans


2
Оперативна
програма

15
Він просто тимчасово використовує eclispe, щоб увімкнути maven у проекті.
Техас

2
Це добре працює, навіть якщо ви проектуєте відстежене віддалене сховище за допомогою Git, після закінчення вам потрібно лише здійснити коміт і натиснути. Дуже корисно, дякую.
Shondeslitch

0

Покращення відповіді @JVerstry .. Я додаю ще одне незрозуміле рішення тут, кроками.

Створіть новий проект Maven у Netbeans. Потім скопіюйте вставний вихідний код у папку maven, це можна зробити в IDE Projects Netbeans IDE View Itself. Після цього виконайте наступні дії.

  1. Додайте залежності SPRING MVC.
  2. Додайте Spring MVC Version до розділу властивостей (Залежно від пункту 1)
  3. Налаштуйте depecher-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>

Пункт 3 : У папці WEB-INF створіть файл з іменем диспетчер-сервлет.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>

оголошує підтримку анотації, керовану mvc, за допомогою @Controller, @Service, @Component.

означає сканувати класи з цього базового пакету, щоб визначити всі класи bean.

Розподільник подання визначає розташування наших переглядів (jsp) та розширення. У своєму web.xml додайте пружинні конфігурації всередині розділу веб-програми .

<!--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 : Це складно, тепер зв’яжіть свій існуючий основний контролер з базовим пакетом, визначеним у depecher-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";
    }
}

Пункт 5 : Тепер у NetBeans клацніть правою кнопкою миші, виберіть чистий і побудуйте, усуньте будь-які попередження та конфлікти, а потім запустіть програму Spring MVC для отримання результатів.


0

Я виявив випадково, чому Netbeans 8.2. відкриває проекти як проекти Netbeans замість Maven; після того, як ви видалили файли netbeans та ant, а потім замінили їх на правильно сформований pom.

Схоже, Netbeans кешує типи проектів для вже відкритих проектів, це можна вирішити, видаливши вказаний кеш.

Windows знаходиться тут:

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

Linux тут:

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

Mac тут:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.