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 将多个项目构建为一个项目时,我读到了这篇文章。具体来说,本文介绍了如何建立一个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 观日食
航天飞机下看日食 The Great American Solar Eclipse