在Eclipse中运行maven项目

时间:2014-09-02 14:43:52

标签: java eclipse maven tomcat

我只是将项目从简单的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文件夹)

1 个答案:

答案 0 :(得分:3)

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

  

的src /主/ JAVA

     

的src /主/资源

     

的src /测试/ JAVA

我和你有同样的问题。我将META-INFWEB-INF移至src/main/webapp并删除了WebContent目录。我之前添加了之前提到的源目录,但它确实有效。

您可以看到有关maven的标准目录布局的更多信息:here

希望它对你有所帮助。