如何将Netbeans生成的项目转换为接受Maven配置?有创建基于Maven的项目的选项,但是没有什么(到目前为止,我发现)可以将Maven依赖项添加到现有项目中。
如何将Netbeans生成的项目转换为接受Maven配置?有创建基于Maven的项目的选项,但是没有什么(到目前为止,我发现)可以将Maven依赖项添加到现有项目中。
Answers:
您需要创建一个单独的Maven项目。然后,您可以将代码从其他项目复制到Maven项目。这可以从NetBeans的“项目”窗口中完成。
只需在树中选择代码文件/包,右键单击以进行复制,然后将其粘贴到新Maven项目的“源包”中。
接下来,打开Maven因为缺少依赖项而无法编译的文件。问题行左侧的黄色灯泡将为您提供搜索缺失的依赖项并将其添加到项目中的选项。您需要在线才能执行搜索。
您还可以通过在“项目”窗口中右键单击依赖项文件夹,在新的Maven项目中手动添加Maven依赖项。
如果您熟悉Maven,那么即使以后也可以配置Maven,但是不建议这样做。
人们(包括我在内;)背后的唯一原因是建议创建一个新的maven项目,因为Maven拥有自己的目录结构。这是标准的。现在,如果要在以后的阶段为项目启用Maven,则可以在pom.xml中进行配置,即源目录,目标目录和Web应用程序目录(如果适用)
我在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>
sourceDirectory
为无效:(
我对桌面Java应用程序执行以下步骤(在执行此操作之前备份您的项目):
在Eclipse中打开您的项目(转到新项目并浏览到您的项目)。导入项目将无法进行。
为此项目启用Maven
添加依赖库
关闭你的专案
删除NBProject
文件夹,然后Build.xml
从项目位置删除(否则NetBeans将无法将其识别为maven项目)。
在NetBeans中打开此项目
改进@JVerstry答案..我在这里分步添加了另一个无法解释的解决方案。
在Netbeans中创建一个新的Maven项目。然后将您的源代码复制粘贴到您的maven文件夹中,可以在Netbeans IDE Projects View Itself中完成。 之后,请按照下列步骤操作。
第一点:
<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文件夹下,创建一个名为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>
的 声明支持注释驱动的mvc,例如使用@ Controller,@ Service,@ Component。
的 表示从该基本程序包中扫描类以确定所有bean类。
视图解析器指定我们的视图(jsp)和扩展名的位置。在您的web.xml中,在web-app部分中添加spring配置。
<!--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";
}
}
第5点:在NetBeans中,现在右键单击,选择“清理并构建”,如果出现任何警告和冲突,请离开,然后运行spring mvc应用程序以获得结果。
我偶然发现了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}/