2012-10-09 67 views
0

我是使用maven和idea的新手。我通過了所有直觀的步驟來運行web項目,但得到了404頁面(如果我在Idea中使用這個應用程序作爲簡單的Web項目,這個應用程序運行良好)。 POM的文件如下:如何在IDEA中正確運行Maven Web項目?

<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> 

能否請你告訴我我的錯或建議的文章在哪裏可以找到這個如何解釋呢?

+0

嘗試改變THI http://maven.apache.org的http://本地主機:serverport/MyApp的 Satya

+0

這是一個Web應用程序?如果是,那麼''元素的值應該是'war'。可能你想添加jetty或tomcat maven插件。 – Augusto

+0

謝謝Satya,但問題仍然存在 –

回答

1

正如其他人所說,你需要一個戰爭包裝。可以肯定,與Maven原型啓動項目,請參閱http://maven.apache.org/guides/mini/guide-webapp.html

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp 

確保你可以建立一個戰爭:

mvn clean install 

現在導入IDEA項目:文件,新建項目,導入項目從外部模型Maven中選擇你的pom.xml。

+0

感謝您的回答。當執行mvn archetype時,我得到了一個MojoException,但遺憾的是它沒有包含我忘記添加的明確信息。但是,mvn clean install會成功構建。 –

+0

但它不能解決問題。 –

+0

如果mvn原型不起作用,我肯定會在繼續之前檢查並修復我的maven配置。您是否從現有的外部Maven模型創建了一個新項目?之後,您需要一個新的運行配置,在其中定義應用程序的應用程序上下文,默認爲/。 URL必須匹配,否則404將會跟隨。 –

1

不太清楚想法,但通常web項目將包裝類型的戰爭,而不是罐子。

另外研究maven戰爭插件,所以你知道哪些文件添加到哪些文件夾。

您可以通過使用maven原型創建示例應用程序來研究此問題。然後使用一個工具來比較樣本來源和你自己的。

0

如果你有404我想這個問題是你嘗試訪問你的應用程序的URL。

儘管如此,檢查您的工件和庫(Ctrl + Shift + Alt + S)的內容。 此外,請嘗試將maven-compiler-pluginmaven-war-plugin等maven插件添加到您的pom.xml

+0

他爲什麼要添加這些插件?沒有任何進一步的澄清,只要讓他包含這些插件就沒有任何意義。 – maba

+0

嗯,我已經添加了這個新的插件,但IDE標記爲錯誤 - 它無法在目錄中找到它們/我運行與repo1.maven.con同步但它是stil更新。 –

相關問題