Java 如何在IDEA中正确运行maven web项目?

Java 如何在IDEA中正确运行maven web项目?,java,maven,intellij-idea,Java,Maven,Intellij Idea,我是使用maven和idea的新手。我通过了所有直观的步骤来运行web项目,但得到了404页(如果我在Idea中用作一个简单的web项目,这个应用程序工作得很好)。pom文件如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4

我是使用maven和idea的新手。我通过了所有直观的步骤来运行web项目,但得到了404页(如果我在Idea中用作一个简单的web项目,这个应用程序工作得很好)。pom文件如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.home.myapp</groupId>
 <artifactId>MyApp</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>MyApp</name>
  <url>http://maven.apache.org</url>
  <properties>
<spring.version>3.1.1.RELEASE</spring.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
  <dependencies>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>${spring.version}</version> 
</dependency> 
<dependency>    
    <groupId>commons-logging</groupId>  
    <artifactId>commons-logging</artifactId>  
    <version>1.1.1</version>  
</dependency>
<dependency>    
    <groupId>commons-io</groupId>  
    <artifactId>commons-io</artifactId>  
    <version>2.3</version>  
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.4</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
</dependency>
  </dependencies>
  <build>
  <pluginManagement>
  <plugins>
      <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>tomcat-maven-plugin</artifactId>
          <configuration>
                  <server>apache-tomcat-7.0.25</server>
                  <url>http://localhost:8080/manager</url>
                  <path>/</path>
              </configuration>
          </plugin>
      </plugins>
  </pluginManagement>

4.0.0
com.home.myapp
MyApp
1.0-快照
罐子
MyApp
http://maven.apache.org
3.1.1.1发布
UTF-8
org.springframework
弹簧芯
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
弹簧网
${spring.version}
org.springframework
SpringJDBC
${spring.version}
org.springframework
SpringWebMVC
${spring.version}
公用记录
公用记录
1.1.1  
公地io
公地io
2.3
javax.servlet
servlet api
2.4
log4j
log4j
1.2.17
朱尼特
朱尼特
3.8.1
测试
org.codehaus.mojo
TomcatMaven插件
apache-tomcat-7.0.25
http://localhost:8080/manager
/


你能告诉我我的错吗?或者建议我写一篇文章,在那里我可以找到对此的解释

对idea不太确定,但通常web项目的打包类型是war,而不是jar

还研究maven war插件,以便知道要添加哪些文件以及要添加到哪些文件夹中


您可以通过使用maven原型创建一个示例应用程序来研究这一点。然后使用工具比较样本源和您自己的源

如果你有404,我想问题在于你试图访问应用程序的URL

尽管如此,还是要检查工件和libs的内容(Ctrl+Shift+Alt+s)。
另外,尝试将诸如
maven编译器插件
maven war插件
之类的maven插件添加到您的
pom.xml
中,正如其他人提到的,您需要一个war包。可以肯定的是,以maven原型开始您的项目,请参见

确保您可以构建一场战争:

mvn clean install

现在在IDEA中导入您的项目:文件,新项目,从外部模型导入项目,Maven,选择您的pom.xml

尝试将thimaven.apache.org更改为localhost:serverport/myapp这是一个web应用程序吗?如果是,则
元素的值应为
war
。也许你想添加jetty或tomcat maven插件。谢谢Satya,但问题是remain@Satya
标记与web应用程序url无关。这只是项目所在地的URL。谢谢Augusto,但它没有帮助。他为什么要添加这些插件?在没有任何进一步澄清的情况下要求他包含这些插件是没有意义的。我已经添加了这些新插件,但是IDE将它们标记为错误-它在目录中找不到它们/I运行与repo1.maven.con的同步,但它仍然在更新。谢谢你的回答。我在执行mvn原型时遇到了一个MojoException,但遗憾的是它没有包含我忘记添加的明确消息。然而,mvn clean install提供了一个成功的构建。但是它并没有解决这个问题。如果mvn原型不起作用,我肯定会在继续之前检查并修复我的maven配置。您是否从现有的外部maven模型创建了一个新项目?之后,您需要一个新的运行配置,在其中定义应用程序的应用程序上下文,默认值为/。URL必须匹配,否则404将跟随。是的,我完全按照你说的做了,但我没有工作。我已经修改了问题中的pom。
mvn clean install