【问题标题】:Run maven project in Eclipse在 Eclipse 中运行 maven 项目
【发布时间】:2014-09-02 14:43:51
【问题描述】:

我只是将项目从简单的 Java Web 应用程序转换为 Maven 项目。并尝试使用目标mvn tomcat7:run 和适当的插件来运行这个项目

<plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <path>/</path>
                </configuration>
            </plugin>

我的项目没有标准的 Maven 布局结构,这就是我在 pom 中更改构建设置的原因

<build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

每次我尝试运行项目时都会出现下一个错误

java.lang.IllegalArgumentException: Document base <path-to-app>\src\main\webapp does not exist or is not a readable directory
    at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:138)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4912)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5092)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

请帮助我了解为什么会出现此错误(我什至删除了 Tomcat 中的 Server 文件夹)

【问题讨论】:

  • 您的 jsp /html 文件保存在哪里?他们应该按照 maven 约定进入src/main/webapp 目录。
  • @Adi 我将 jsp 保存在 WebContent 中,据我所知 &lt;warSourceDirectory&gt;WebContent&lt;/warSourceDirectory&gt; 这一行有助于覆盖默认的 webapp 文件夹位置

标签: java eclipse maven tomcat


【解决方案1】:

Maven 正在等待特定的目录布局来“理解”您的项目。例如,必须共同点是:

src/main/java

src/main/资源

src/test/java

我遇到了和你一样的问题。我将META-INFWEB-INF 移动到src/main/webapp 并删除了WebContent 目录。我也添加了前面提到的源目录,它可以工作。

您可以查看更多关于 maven 的标准目录布局:here

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多