77

我正在尝试使用 maven 和 eclipse 创建一个非常简单的 webapp,但我一点也不快乐,实际上是快乐的反面。

我转到 File -> New Project,选择 Maven Project,然后选择 maven-archetype-webapp。当我完成向导时,会生成一个 webapp 结构,但 main 下没有“java”目录,只有资源和 webapp。

所以我右键单击 main 并选择 new Class。该类是在资源(?!)下创建的,此外,java似乎没有对其进行编译。我会犯愚蠢的错误,并且不会出现语法突出显示。就像java没有识别它一样。

或者,我尝试在它应该在的 main 下创建一个新的“java”目录,但仍然具有相同的不存在的 java 症状。

是什么赋予了?这让我发疯..

谢谢大家!

4

17 回答 17

85

只需在(ie )下创建一个java目录,然后右键单击 您的项目并选择Maven > Update Project Configurationmainsrc/main/java

于 2010-06-15T12:13:04.997 回答
22
  1. 默认情况下,当您使用 maven 原型“maven-archetype-webapp”创建项目时,它不会创建任何 java 和 test 文件夹。
  2. 您可以手动将这些文件夹添加为 src/main/java 和 src/test/java。
  3. 添加这些文件夹后,在项目资源管理器中右键单击您的项目,转到 maven>update project conf。
于 2010-12-10T09:39:01.167 回答
5

只需在 main 下创建一个 java 目录(即 src/main/java)并右键单击 -> Build Path -> Use a Source Folder

于 2010-08-25T18:49:36.937 回答
4

其他任何事情都可能取决于原型以及您如何配置pom.xml. 您描述的目录结构与maven-archetype-webapp在命令行上创建的目录结构相同。

于 2010-06-15T09:19:00.370 回答
3

这是一篇很棒的文章,当我无法理解如何使用 Maven 将多个项目构建为一个项目时,我读到了这篇文章。具体来说,这篇文章解释了如何建立一个WEB项目(war文件)来消费一个内部标准的java项目(jar文件)。

如果您对 Maven 有基本的了解,请跳到最后的部分:如何构建其他类型的项目?如何一次构建多个项目?

http://maven.apache.org/guides/getting-started/index.html#How_do_I_build_other_types_of_projects

如果您还不熟悉 Maven,请查看:

http://www.mkyong.com/spring/quick-start-maven-spring-example/

相信我,mkyong 知道发生了什么!

于 2014-06-13T04:08:38.960 回答
3

只需在 src/main/ 下创建名为 java 的新文件夹

然后右键单击项目并选择maven->更新项目

于 2015-02-26T16:30:02.203 回答
2

可以选择在 eclipse 中创建源目录。或者您可以转到项目属性下的构建路径,并将现有目录添加为源目录。

如果要使用非标准目录结构,则必须在 maven 中指定它

于 2010-06-15T09:14:40.543 回答
2

生成了一个 webapp 结构,但 main 下没有“java”目录

自己创建 src/main/java。

此外,java似乎没有对其进行编译。我会犯愚蠢的错误,并且不会出现语法突出显示。就像java没有识别它一样。

创建适当的目录结构后执行maven命令

mvn eclipse:eclipse 

然后在eclipse中刷新项目。

-SE

于 2010-06-15T12:58:32.543 回答
2

对于 src/main/java 你的项目 >> 属性 >> java 构建路径 >> 源 >>
搜索“你的项目 src/main/java (missin)” >>>

编辑 > 文件夹名称 >> 下一个 >> 包含模式: -----> 添加 >> src/main/java OK

如果错误仍然没有消失

>>>  look in Target Runtimes  and check your apache in checkbox
于 2014-12-28T11:48:20.477 回答
1

在 IntelliJ IDEA 13 中,您必须首先在主文件夹中创建“java”文件夹,然后 --> 转到“打开模块设置”- 为此,您可以单击项目名称并按 f4- ,并将“java”文件夹的标签设置为“资源” 。

于 2014-02-09T10:30:58.970 回答
1

这是我的解决方案。它可以正常工作。

可能会有关于为什么需要所有这些步骤的问题,我相信它们是非常真实的。但这是使用 Maven从命令行使您的 Web 应用程序或任何其他组件在 eclipse 上工作的方法之一。

1) 打开命令窗口

2) mvn archetype:generate -DgroupId=你的包-DartifactId=你的项目-DarchetypeArtifactId=你的原型。在我的情况下“maven-archetype-webapp” -DinteractiveMode=false

3) cd你的项目

4) mvn eclipse:eclipse -Dwtpversion=2.0

5) 转到文件系统。转到您新创建的项目。创建文件夹,a) main 下的 java
b) src 下的 test c) java 和被测资源

6) mvn eclipse:clean

7) mvn eclipse:eclipse -Dwtpversion=2.0

8)在eclipse中导入你的Project项目

谢谢, 席德

于 2015-02-25T14:44:55.777 回答
1

反过来做。首先制作一个 webapp 项目,然后添加 Maven 框架(在 Intellij - 右键单击​​项目并选择添加框架支持)。它将为您创建正确的文件夹。

于 2015-04-24T11:46:14.810 回答
1

只需在 src/main 下添加一个新文件夹“java”。将解决问题。因为创建项目的.classpath文件中已经有java文件夹的classpath,所以添加java文件夹不会导致任何错误。请参见 .classpath 文件中的以下条目,该条目允许添加 java 文件夹。

<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>

于 2017-12-11T14:20:26.693 回答
1

即使我将 JRE 系统库添加到我当前的 java 版本中,我也遇到了同样的问题,但仍然有同样的问题,然后我删除了 JRE 系统库并再次添加它对我有用

  • 要删除 JRE 系统库,请右键单击项目 -> 属性 -> java 构建路径 -> 选择 JRE 系统库 -> 删除

  • 要添加 JRE,请转到属性 -> java 构建路径 -> 添加库 -> JRE 系统库 -> 选择 JRE -> 完成

于 2017-11-28T06:50:09.450 回答
1

右键单击 Maven 项目 -> 构建路径 -> 在 Order & Export 选项卡中配置构建路径,您可以看到类似选择“JRE 系统库”和“Maven 依赖项”复选框的消息单击“确定”现在就可以了

于 2016-04-19T06:12:14.543 回答
0

错误指向 JRE 系统库时会发生错误。现在转到库选项卡并将 JRE 系统库更改为正确的版本。

于 2018-11-14T05:47:25.350 回答
0

以下步骤在 eclipse 2020-06 中工作

  1. 文件->新建->Maven项目
  2. 选择“创建一个简单的项目(跳过原型选择)”
  3. 选择打包为“war”(这将创建 webapp 和 java 文件夹)
  4. 指定 group id 和 artifact id 后创建项目
  5. 使用 java 和编译器版本更新 pom.xml,然后右键单击项目,选择 Maven->更新项目
  6. 如果项目不是多面形式(如果在项目资源管理器中扩展项目,它不是多面形式,它不会显示诸如“部署描述符”和“JAX-WS Web 服务”之类的详细信息,这发生在我的一个 Eclipse 安装中我不知道为什么),然后执行以下步骤
    1. 右键单击项目,转到属性,单击项目构面,转换为构面形式,选择正确的“动态 Web 模块”版本,启用复选框并选择正确的 Java 构面版本。
    2. “可用的进一步配置”显示在该窗口中,单击它并指定 WebContent 文件夹。(将 WebContent 替换为 src/main/webapp)
    3. 如果要在 eclipse 中配置的服务器中运行应用程序,则在“部署程序集”中指定要部署的 maven 依赖项。这也将部署 maven“提供的”依赖项,但我认为它可以用于测试。对于实际分发,您可以提供从 maven 包生成的 war 文件。
于 2020-08-15T18:52:27.853 回答