27

ソース ディレクトリ内の選択したファイルまたはディレクトリ (サブディレクトリを含む) のみをコンパイルしたい。<includes>の構成を使用してこれを実行できると確信していmaven-compiler-pluginましたが、すべてのクラスを にコンパイルするため、期待どおりに動作しないようtarget/classesです。本当に奇妙なことに、Maven の出力は、設定が実際に機能することを示唆しています。

  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
      <includes>
        <include>com/example/dao/bean/*.java</include>
      </includes>
    </configuration>
  </plugin>

私は持っている:

[INFO] Compiling 1 source file to c:\Projects\test\target\classes

しかし、私が持っているコンパイラの設定はありません:

[INFO] Compiling 14 source file to c:\Projects\test\target\classes

ただし、どちらの場合も、前述のように 14 個のクラスすべてがコンパイルさtarget/classesれます。それを説明したり、選択したファイルのみをコンパイルする別の解決策を提案したりできますか?

4

4 に答える 4

36

3つのクラスを持つシンプルなアプリ。

com/company/Obj1.java
com/company/Obj2.java
com/company/inner/Obj3.java  

buildpom.xml

<build>
         <plugins>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>2.0.2</version>
               <configuration>
                  <source>1.6</source>
                  <target>1.6</target>
                  <includes>
                     <include>com/company/inner/*.java</include>
                  </includes>
               </configuration>
            </plugin>
          </plugins>

   </build>  

結果:1つのクラスがコンパイルされます。
そして、インクルードの任意の組み合わせがうまく機能してい
ますか、それとも何か他のものを意味しますか?

于 2012-06-18T10:47:27.020 に答える
2

Ant のような包含/除外表記を使用する maven-compiler-plugin。Ant ドキュメントAnt FileSet Typeで例を見ることができます

1 つのディレクトリのファイルのみを含めたい場合は、次のように記述する必要があります。

<include>com/example/dao/bean/*.java</include>

パスからサブディレクトリも含めるには、次のようになります。

<include>com/example/dao/bean/**/*.java</include>
于 2012-06-21T11:14:12.810 に答える
0

Mavenコンパイラプラグインを使用してコンパイルするファイルを含めたり除外したりするのに問題はありませんでした2.5.1これが私がその目的で使用したダミープロジェクトです。おそらく、include使用するパターンが異なります。

于 2012-06-19T05:10:11.850 に答える