2013-05-05 18 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

答えて

11

私の視点、プロジェクト構造から、達人が期待通りではありません。あなたの問題を解決するために

は、次の手順を実行します

  1. まずretail.web.mbeanにmain.java.retail.web.mbean(プロセスの後にあなたのパッケージの名前を変更し、あなたのパッケージはまだretail.web.mbeanという名前になります)、これはmavenに必要なフォルダ構造を作成します。
  2. プロジェクトを右クリックし、Maven> Update Project Configurationをクリックします。

このプロセスの後、プロジェクトを開始する前の構造と同じになりますが、mavenはソースコードの場所を知ります。

さらに、次の構造を持つリソースフォルダとテスト用フォルダを作成することができます

Project 
    src 
    main 
     java 
     resources 
    test 
     java 
     resources 

これは、標準のMavenプロジェクト構造になります。デフォルトのMavenによって

+0

あなたはこの質問を確認することができますしてくださいあまりにもhttp://stackoverflow.com/q/16383877/668970 – developer

14

は、Javaソースがのsrc /メイン/ 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プロジェクトをインポートしたときダイナミックWebプロジェクトとして認識しなかったので、クラスを生成していませんでした。私が ' $ {basedir}/src'を生成したpomに追加したところ、うまくいきました。素晴らしい! – Oliver

+0

私の問題はJavaバージョンで起こりました。私は1.8.101を持って1.8.144に更新しなければなりませんでした。そして、mavenはsrc/main/javaディレクトリのソースファイルを認識することができました –

+0

ヒント:そしてテストディレクトリのために、あなた自身のディレクトリを追加することができます: $ {basedir}/test

-2

あなたは戦争にjavaファイルを含めることのpom.xmlに以下のコード行を使用することができますあなたが作成したものです。 デフォルトのwarは、パッケージ化中の.javaファイルを除外します。

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

あなたが提案したことを知っているだけです。それが置かれます。あなたが望むものではないターゲット/クラスのJavaファイル。最初にそれらを.classファイルに構築したいとします。 –

関連する問題