如何将Netbeans生成的项目转换为接受Maven配置?有一些选项可以创建基于Maven的项目,但是到目前为止我没有发现将Maven依赖项添加到现有项目中。
答案 0 :(得分:61)
您需要创建一个单独的Maven项目。然后,您可以将代码从其他项目复制到Maven项目。这可以从NetBeans中的“项目”窗口完成。
只需在树中选择代码文件/包,右键单击进行复制,然后将其粘贴到新Maven项目的源包中。
接下来,打开Maven无法编译的文件,因为它们错过了依赖项。有问题的行左侧的黄色灯泡将为您提供搜索缺少的依赖项的选项,并将它们添加到您的项目中。您需要联机才能执行搜索。
您还可以通过右键单击“项目”窗口中的“依赖项”文件夹,在新的Maven项目中手动添加maven依赖项。
答案 1 :(得分:15)
如果你是maven的家人,那么你甚至可以在以后配置maven,但是不建议这样做。
人们(包括我;)推荐创建一个新的maven项目背后的唯一原因是,Maven拥有自己的目录结构。这是标准的。现在,如果你想在以后阶段为你的项目启用maven,那么你可以在pom.xml中配置东西,即你的源目录,目标目录和web app目录(如果适用)
我在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>
答案 2 :(得分:8)
我按照桌面Java应用程序执行这些步骤(在执行此操作之前备份项目):
在Eclipse中打开您的项目(转到新项目并浏览到您的项目)。导入项目将不起作用。
为此项目启用maven
添加依赖库
关闭您的项目
从项目位置删除NBProject
文件夹和Build.xml
(否则NetBeans将无法将其识别为maven项目)。
在NetBeans中打开此项目
答案 3 :(得分:0)
改善@JVerstry答案..我在步骤中添加了此处无法解释的另一种解决方案。
在Netbeans中创建一个新的Maven项目。然后将源代码复制粘贴到maven文件夹中,可以在Netbeans IDE Projects View Selfself中完成。 在此之后按照以下步骤操作。
第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文件夹下,创建名为 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 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 中,现在右键单击,选择clean and build,如果有任何警告和冲突,请离开,然后运行spring mvc应用程序获取结果。< / p>
答案 4 :(得分: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}/