【问题标题】:Converting a Netbeans project to a Maven enabled project将 Netbeans 项目转换为启用 Maven 的项目
【发布时间】:2011-07-26 14:19:54
【问题描述】:

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

【问题讨论】:

  • 您是否将项目作为 Maven 项目打开?
  • Netbeans 不允许您将其作为“Maven 类型”项目打开。 [嗯,它没有给你“打开为”的选项]

标签: netbeans maven


【解决方案1】:

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

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

接下来,打开 Maven 无法编译的文件,因为它们缺少依赖项。问题行左侧的黄色灯泡将为您提供搜索缺失依赖项并将其添加到项目中的选项。您需要在线执行搜索。

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

【讨论】:

  • 我就是这么做的。它并没有我想象的那么糟糕。我喜欢新的基于 Maven 的构建。
  • 请注意:如果您有hibernate,您需要将hibernate.cfg.xml和persistence.xml文件复制到新文件夹:src/main/resources/META-INF跨度>
  • 如果它连接到 git 有什么建议对合并文件进行分支和跟踪,而不是创建新的 master 如何处理它
  • 在创建动态 Web 项目然后将其转换为 Maven 后,它不能像 Eclipse 一样吗?我最近发现 Netbeans 缺少这个有用的功能。
【解决方案2】:

如果你对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>

【讨论】:

  • 你能解释一下吗?
  • 如果你的目录结构与标准的maven项目不同,那么你必须配置它。 Maven 隐含地使用了几个需要标准目录结构的插件。所以当你有不同的结构时,你必须配置这些插件并控制构建过程。例如,我的网络资源直接在 web-root 文件夹中,然后我必须相应地配置 maven war 插件。
  • 它报告sourceDirectory 无效:(
【解决方案3】:

我对我的桌面 Java 应用程序执行以下步骤(在执行此操作之前备份您的项目):

  1. 在 Eclipse 中打开您的项目(通过转到新项目并浏览到您的项目)。无法导入项目。

  2. 为此项目启用 maven

  3. 添加依赖库

  4. 关闭您的项目

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

  6. 在 NetBeans 中打开此项目

【讨论】:

  • OP 是具体的,他想要关于 netbeans IDE 的信息而不是 eclipes
  • 他只是临时使用eclispe在项目中启用maven。
  • 即使您使用 Git 跟踪远程存储库,它也能正常工作,一旦完成,您只需要提交和推送。很有帮助,谢谢。
【解决方案4】:

我偶然发现,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}/

【讨论】:

    【解决方案5】:

    改进@JVerstry 答案。我添加了另一个未在步骤中解释的解决方案。

    在 Netbeans 中创建一个新的 Maven 项目。然后将源代码复制粘贴到 maven 文件夹中,可以在 Netbeans IDE Projects View Itself 中完成。 然后按照以下步骤操作。

    1. 添加 SPRING MVC 依赖项。
    2. 将 Spring MVC 版本添加到您的 属性部分(取决于第 1 点)
    3. 在 Spring 文件夹中配置 dispatcher-servlet.xml 和 web.xml。
    4. 剩下的就是做一些匹配和配置你的主Controller & JSP / HTML-Page.,
    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 文件夹下,创建一个名为 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 中,现在右键单击,选择 clean and build,如果出现任何警告和冲突,请立即离开,然后运行您的 spring mvc 应用程序以获得结果。

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 2011-01-27
      • 2011-10-23
      • 1970-01-01
      • 2017-03-25
      相关资源
      最近更新 更多