将 Netbeans 项目转换为启用 Maven 的项目

如何将 Netbeans 生成的项目转换为接受 Maven 配置?有一些选项可以创建基于 Maven 的项目,但是没有任何选项(到目前为止我发现的)可以将 Maven 依赖项添加到现有的项目中。

75631 次浏览

您需要创建一个单独的 Maven 项目。然后,您可以将来自其他项目的代码复制到 Maven 项目。这可以通过 NetBeans 中的 Projects 窗口完成。

只需选择树中的代码文件/包,右键单击复制,然后将它们粘贴到新 Maven 项目的 Source Packages 中。

接下来,打开 Maven 无法编译的文件,因为它们缺少依赖性。问题行左边的黄色灯泡将为您提供搜索缺少的依赖项并将其添加到项目中的选项。你需要上网才能进行搜索。

还可以通过右键单击 Projects 窗口中的依赖项文件夹,在新的 Maven 项目中手动添加 Maven 依赖项。

如果您熟悉 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>

对于我的桌面 Java 应用程序,我遵循以下步骤(在这样做之前备份您的项目) :

  1. 在 Eclipse 中打开您的项目(通过转到新项目并浏览到您的项目)。导入项目将不起作用。

  2. 为此项目启用 maven

  3. 添加依赖项库

  4. 结束你的项目

  5. 从项目位置删除 NBProject文件夹和 Build.xml(否则 NetBeans 将无法将其识别为 maven 项目)。

  6. 在 NetBeans 中打开此项目

改进@JVerstry 答案. . 我加入 另一个在步骤中无法解释的解决方案。

在 Netbeans 创建一个新的 Maven 项目。然后复制粘贴您的源代码在您的文件夹,它可以在 Netbeans IDE 项目视图本身。 完成以下步骤。

  1. 添加 SpringMVC 依赖项。
  2. 将 Spring MVC 版本添加到 属性部分(取决于第1点)
  3. 在 Spring 文件夹中配置 patcher-servlet.xml 和 web.xml。
  4. 剩下的就是做一些匹配和配置您的主控制器和 JSP/HTML-Page,
  5. 检查你的主页。

第一点:

<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 文件夹下,创建一个名为 Patcher-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>

使用 @ 控制器,@服务,@组件。声明支持注释驱动的 mvc

意味着从这个基本包中扫描类,以确定所有的 bean 类。

视图解析器指定视图(jsp)和扩展的位置。 在 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点 : 这很棘手,现在将您现有的主控制器链接到 Patcher-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中,现在右键单击,选择 clean and build,如果有任何警告和冲突,则退出,然后运行 Spring mvc 应用程序获取结果。

我偶然发现,为什么 Netbeans 8.2。将项目作为 Netbeans 项目而不是 Maven 项目打开; 删除 Netbeans 和 ant 特定文件后,用正确形式的 pom 替换它们。

Netbeans 似乎缓存了已经打开的项目的项目类型,这可以通过删除该缓存来解决。

视窗位于此处:

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

Linux here:

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

我是麦克:

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