【问题标题】:maven-archetype-webapp eclipse problemmaven-archetype-webapp 日食问题
【发布时间】: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 的简单解决方案,它可以工作。我会尝试你所有的建议。

标签: java eclipse maven-2 m2eclipse maven-archetype


【解决方案1】:

以下步骤适用于 eclipse 2020-06

  1. 文件->新建->Maven 项目
  2. 选择“创建一个简单的项目(跳过原型选择)”
  3. 选择打包为“war”(这将创建 webapp 和 java 文件夹)
  4. 指定组 id 和工件 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 文件。

【讨论】:

    【解决方案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】:
                      1. 默认情况下,当您使用 maven 原型“maven-archetype-webapp”创建项目时,它不会创建任何 java 和 test 文件夹。
                      2. 您可以手动将这些文件夹添加为 src/main/java 和 src/test/java。
                      3. 添加这些文件夹后,在项目资源管理器中右键单击您的项目,转到 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】:

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

                      【讨论】:

                        【解决方案17】:

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

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

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2013-07-31
                          • 1970-01-01
                          • 1970-01-01
                          • 2022-12-20
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-07-17
                          • 1970-01-01
                          相关资源
                          最近更新 更多