maven-archetype-webapp 日食问题

Posted

技术标签:

【中文标题】maven-archetype-webapp 日食问题【英文标题】:maven-archetype-webapp eclipse problem 【发布时间】:2011-03-03 19:40:50 【问题描述】:

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

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

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

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

什么给了?这让我发疯了..

谢谢大家!

【问题讨论】:

各位——非常感谢!我刚刚尝试了 Pascal 的简单解决方案,它可以工作。我会尝试你所有的建议。 【参考方案1】:

以下步骤适用于 eclipse 2020-06

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

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

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

【讨论】:

【参考方案9】:

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

可能会有关于为什么需要所有这些步骤的问题,我相信它们是非常真实的。但这是使用 命令行 中的 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 下测试 c) java 和被测资源

6) mvn eclipse:clean

7) mvn eclipse:eclipse -Dwtpversion=2.0

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

谢谢, 席德

【讨论】:

【参考方案10】:

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

edit > 文件夹名称 >> 下一个 >> 包含模式:-----> 添加 >> 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 是我的包名。现在我可以编写包 x.y.z 没有任何错误。谢谢 maven-compiler-plugin3.6.11.8 1.8org.apache.maven.pluginsmaven-war-plugin3.1.0版本> 【参考方案11】:

这是一篇很棒的文章,当我无法理解如何使用 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 知道发生了什么!

【讨论】:

感谢您提供了解 Maven 使用多个项目的方式的链接。【参考方案12】:

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

【讨论】:

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

【讨论】:

这是 Maven 最奇怪的部分。为什么在创建 webapp 原型时不一起创建 src/main/java、src/test/java、src/test/resources?这不是maven的bug吗?【参考方案14】:

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

自行创建 src/main/java。

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

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

mvn eclipse:eclipse 

然后在eclipse中刷新项目。

-SE

【讨论】:

OP 使用的是 m2eclipse,而不是 maven-eclipse-plugin 太棒了! maven-eclipse-plugin 比 m2e 好很多。【参考方案15】:

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

【讨论】:

我知道这是一个老问题,但它仍然是谷歌的热门话题,所以只是想知道是否有人能够在下面回答汤加的问题并解释为什么 Maven 不简单地将其作为默认设置?例如,在 Maven 中是否有一种观点认为这种目录结构由于某种原因对 Web 应用程序来说不是“好”的?【参考方案16】: 阅读 m2eclipse WTP mini-howto。 在线查看Developing with Eclipse and Maven。 确保您的 settings.xml 已在 Eclipse 首选项中配置。 检查m2eclipse FAQ。

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

【讨论】:

【参考方案17】:

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

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

【讨论】:

以上是关于maven-archetype-webapp 日食问题的主要内容,如果未能解决你的问题,请参考以下文章

美国小学生Maggie的日常| Solar Eclipse 观日食

今天有日食

温暖又冷酷的日食壁灯「Eclipse Sconce」

航天飞机下看日食 The Great American Solar Eclipse

eclipse创建maven工程选择maven-archetype-webapp后报错。

日食 (Solar Eclipse)