2013-05-05 143 views
8

iam將我的項目轉換爲maven。 我在war文件中看到沒有可用的類文件。Maven沒有編譯類,在war文件中沒有類文件

下面是pom.xml中和項目結構。

<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>RetailProducts</groupId> 
    <artifactId>RetailProducts</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>RetailProducts</name> 

    <dependencies> 

     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>2.1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.1.7</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
     </dependency> 
       <!-- Tomcat 6 need this --> 
     <dependency> 
      <groupId>com.sun.el</groupId> 
      <artifactId>el-ri</artifactId> 
      <version>1.0</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <finalName>JavaServerFaces</finalName> 

     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.1.1</version> 
     <!-- <configuration> section added to pick up the WEB-INF/web.xml inside WebContent --> 
     <configuration> 
     <webResources> 
      <resource> 
       <directory>WebContent</directory> 
      </resource> 
     </webResources> 
     </configuration> 
    </plugin> 
     </plugins> 
    </build> 
</project> 


項目結構

enter image description here

+1

downvoters請註明您所downvoting這樣我就可以糾正自己什麼 – developer 2013-05-05 07:48:34

回答

11

從我的觀點你的項目結構上來看是沒有行家的期望。

爲了解決您的問題,請執行以下操作:

  1. 首先重命名你的包retail.web.mbeanmain.java.retail.web.mbean(後處理您的包將仍然命名爲retail.web.mbean),這將創建maven所需的文件夾結構。
  2. 右鍵單擊該項目,Maven>更新項目配置。

經過這個過程後,您將擁有與開始項目前相同的結構,但maven會知道在哪裏可以找到源代碼。

此外,您可以創建一個資源文件夾和文件夾的測試用以下結構:

Project 
    src 
    main 
     java 
     resources 
    test 
     java 
     resources 

這將是標準的Maven項目結構。

+0

請您可以檢查這個問題太http://stackoverflow.com/q/16383877/668970 – developer 2013-05-05 11:15:19

14

默認情況下Maven認爲Java源代碼將在的src/main/java的但你的項目結構在SRC來源。我會建議你堅持standard Maven directory佈局。

如果你不想這樣做,那麼你可以使用sourceDirectory構建設置如下應:

<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"> 
    ... 
    <build> 
    <sourceDirectory>${basedir}/src</sourceDirectory> 
    </build> 
</project> 
+0

當我輸入我的Maven項目在eclipse它沒有認識到它是一個動態Web項目,所以它不會生成這些類。當我在它生成的pom中添加了 ' $ {basedir}/src'',並且它工作正常。驚人 !! – Oliver 2015-04-17 12:28:10

+0

我的問題是java版本。我有1.8.101,並且必須更新到1.8.144,然後maven可以識別src/main/java – 2017-10-11 14:24:29

+0

提示中的源文件:對於測試目錄,您可以添加自己的目錄,例如: $ {basedir}/test 2018-02-15 08:47:30

-2

您可以使用代碼中的pom.xml以下行包括在戰爭中的Java文件你已經創建。 默認情況下,打包時排除.java文件。

<resources> 
    <resource> 
    <directory>src</directory> 
    <includes> 
    <include>**/*.java</include> 
    </includes> 
    </resource> 
</resources> 
+0

只要你知道你的建議。那會放。目標/類中的java文件不是你想要的。你想先建立它們到.class文件。 – 2016-03-31 15:32:23