Maven-原型-Webapp日食问题


75

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

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

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

另外,我尝试在主目录下创建一个新的“ java”目录,但仍然具有相同的不存在的Java症状。

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

谢谢大家!


伙计们-非常感谢!我只是尝试了Pascal的简单解决方案,它可以工作。我会尝试所有您建议的东西。
杰里米

Answers:


85

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


10
我知道这是一个古老的问题,但它仍然是Google上的热门话题,所以只是想知道是否有人可以在下面回答tonga的问题,并解释为什么Maven不会简单地将此问题包含为默认值?例如,由于某种原因,Maven中是否存在这样的想法,即该目录结构对Web应用程序不是“好的”?
米克

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

6
这是Maven最奇怪的部分。创建Webapp原型时,为什么不同时创建src / main / java,src / test / java,src / test / resources?这不是Maven的错误吗?
tonga 2013年

5

只需在main(即src / main / java)下创建一个Java目录,然后右键单击->构建路径->使用源文件夹



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知道发生了什么!


1
感谢您提供的链接,以了解Maven使用多个项目的方式。
ass 2015年

3

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

然后右键单击项目并选择maven-> update project


2

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

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


2

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

自己创建src / main / java。

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

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

mvn eclipse:eclipse 

然后在eclipse中刷新项目。

-SE


OP使用的是m2eclipse,而不是maven-eclipse-plugin
Pascal Thivent 2010年

太棒了!maven-eclipse-plugin比m2e更好。
ass 2015年

2

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

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

如果错误仍然没有消失

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

早些时候我遇到编译器错误,要求将我的包名称重命名为main.java.xyz;。完成此步骤后,Eclipse再也不需要这样做了。直到src / main / java在src路径上。xyz是我的包裹名称。现在,我可以编写xyz程序包了,没有任何错误。谢谢
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,

1

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


1

这是我的解决方案。它的工作没有任何问题。

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

1)打开命令窗口

2)mvn原型:生成-DgroupId =您的软件包-DartifactId =您的项目-DarchetypeArtifactId =您的原型。在我的情况下,“ maven-archetype-webapp” -DinteractiveMode = false

3)CD你的项目

4)mvn eclipse:eclipse -Dwtpversion = 2.0

5)转到文件系统。转到您新创建的项目。创建文件夹,a)在主程序
下使用Java,b)在src下测试,c)在测试中的Java和资源

6)MVN Eclipse:干净

7)mvn eclipse:eclipse -Dwtpversion = 2.0

8)在Eclipse中导入您的Project项目

谢谢,席德


1

反之亦然。首先创建一个webapp项目,然后添加Maven框架(在Intellij中-右键单击项目,然后选择“添加框架支持”)。它将为您创建正确的文件夹。


1

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


1

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

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

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


1

只需在src / main下添加一个新的文件夹“ java”即可。将解决问题。由于创建项目的.classpath文件中已有带java文件夹的类路径,因此添加java文件夹不会引起任何错误。请参阅以下.classpath文件中的条目,该文件允许添加java文件夹。

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


0

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


0

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

  1. 文件->新建-> Maven项目
  2. 选择“创建一个简单的项目(跳过原型选择)”
  3. 选择打包为“ war”(这将同时创建webapp和java文件夹)
  4. 在指定组标识和工件标识之后创建项目
  5. 使用Java和编译器版本更新pom.xml,然后右键单击项目,选择Maven-> Update project
  6. 如果项目不是多面形式(如果在Project Explorer中扩展项目,则不是多面形式,则不会显示“ Deployment Descriptor”和“ JAX-WS Web Services”之类的详细信息,这是在我的Eclipse安装之一中发生的而且我不知道为什么),然后执行以下步骤
    1. 右键单击项目,转到“属性”,单击“项目构面”,转换为构面形式,选择正确的“动态Web模块”版本,启用复选框,然后选择正确的Java Facet版本。
    2. 在该窗口中显示“可用的其他配置”,单击它并指定WebContent文件夹。(用src / main / webapp替换WebContent)
    3. 如果要在eclipse中配置的服务器中运行应用程序,则指定要在“ Deployment Assembly”中部署的maven依赖项。这也将部署Maven“提供的”依赖项,但是我认为它可以很好地进行测试。对于实际分发,您可以提供从maven软件包生成的war文件。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.