Maven-archetype-webapp在Eclipse中出现问题。

77
我试图使用Maven和Eclipse创建一个非常简单的Web应用程序,但是我一点也不开心,事实上相反。

我去“文件”->“新建项目”,选择Maven项目,然后选择maven-archetype-webapp。完成向导后,会生成一个Web应用程序结构,但在主目录下没有“java”目录,只有资源和Web应用程序。

所以我右键单击主目录并选择新类。该类被创建在资源下(?!),而且似乎没有被Java编译。我可以犯愚蠢的错误,但没有语法高亮显示。就像Java没有识别它一样。

或者,我尝试在应该存在的主目录下创建一个新的“Java”目录,但仍然出现了同样不存在的Java症状。

怎么回事?这让我发疯了。

谢谢大家!


大家好 - 非常感谢!我刚刚尝试了Pascal的简单解决方案,它有效了。我会尝试你们所有人建议的所有事情。 - Jeremy
16个回答

86

只需在main目录下创建一个java文件夹(即src/main/java),然后在项目上右键单击,选择Maven > 更新项目配置


11
我知道这是一个老问题,但它仍然是Google上的热门搜索,所以想知道是否有人能回答下面tonga的问题,并解释为什么Maven不直接将此作为默认选项?例如,Maven内部是否存在一种思想流派认为这种目录结构对于Web应用程序不是“好”的原因? - Mick

22
  1. 默认情况下,使用maven原型“maven-archetype-webapp”创建项目时,不会创建任何Java和测试文件夹。
  2. 您可以手动将这些文件夹添加为src/main/java和src/test/java。
  3. 添加这些文件夹后,在项目资源管理器中右键单击您的项目,转到maven>更新项目配置。

6
这是Maven最奇怪的部分。为什么在创建Web应用程序原型时不一起创建src/main/java、src/test/java、src/test/resources?这不是Maven的一个漏洞吗? - tonga

5
只需在 main 目录下创建一个 java 文件夹(即 src/main/java),然后右键单击 -> Build Path -> Use a Source Folder。

4

3

只需在src/main/下创建一个名为java的新文件夹即可。

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


2

生成了一个Web应用程序结构,但在main目录下没有'java'目录。

需要自己创建src/main/java目录。

此外,似乎没有通过Java进行编译。我可能会犯一些愚蠢的错误,但没有语法高亮显示。就像Java没有识别它一样。

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

mvn eclipse:eclipse 

然后在eclipse中刷新项目。

-SE


OP正在使用m2eclipse,而不是maven-eclipse-plugin。 - Pascal Thivent
太棒了!maven-eclipse-plugin比m2e好多了。 - asgs

2

对于 src/main/java 文件夹:

进入你的项目 >> 属性 >> Java Build Path >> Source >>
搜索 "Your Project src/main/java (missin)" >>>

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

如果错误仍然存在

>>>  look in Target Runtimes  and check your apache in checkbox

之前我遇到了编译器错误,要求我将包名重命名为main.java.x.y.z;按照这个步骤操作后,Eclipse再也没有提出过这个问题。只要src/main/java在src路径上,x.y.z就是我的包名。现在我可以毫无错误地编写package x.y.z了。谢谢。 - Dexter
<plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.1.0</version> <configuration>
<!-- <warSourceDirectory>WebContent</warSourceDirectory> --> </configuration> </plugin> </plugins>
- Lisa

2

在eclipse中有一个创建源目录的选项。或者您可以在项目属性下的构建路径中添加现有目录作为源目录。

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


2

右键单击Maven项目 -> 构建路径 -> 配置构建路径 在“顺序和导出”选项卡中,您可以看到选择“JRE系统库”和“Maven依赖项”复选框的消息 点击确定 现在你可以使用它们了


我认为这个答案是在Eclipse中自动添加src/main/java和src/test/java的最干净的方法。对于当前的Eclipse版本2021-12,名称为“Maven项目->构建路径->Java构建路径”。 - Johan

1
只需在src/main下添加一个新文件夹"java",问题就会得到解决。因为创建的项目的.classpath文件中已经包含了带有java文件夹的类路径,所以添加java文件夹不会导致任何错误。请查看.classpath文件中的以下条目,它允许添加java文件夹。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接