0

Maven でビルド ヘルパー プラグインを使用して単体テストと統合テスト用に個別のディレクトリを作成する方法については、Spring in Practice の第 10 章のアドバイスに従ってください。Spring Tool Suite で作業しており、Spring プロジェクトに統合テストを追加しようとしています。プラグインを次のように構成しました。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.9.1</version>
    <executions>
        <execution>
            <id>add-it-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-test-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>src/it/java</source>
                </sources>
            </configuration>
        </execution>
        <execution>
            <id>add-it-resource</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-test-resource</goal>
            </goals>
            <configuration>
                <resources>
                    <resource>
                        <directory>src/it/resources</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

clean を使用してビルドを実行し、compile を使用して再試行します。コンソール画面に次のメッセージが表示されます。

[INFO] Scanning for projects...
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building wellness Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- build-helper-maven-plugin:1.9.1:add-test-source (add-it-source) @ wellness ---
[INFO] Test Source directory: /Users/walk12/Documents/workspace-sts/wellness/src/it/java added.
[INFO] 
[INFO] --- build-helper-maven-plugin:1.9.1:add-test-resource (add-it-resource) @ wellness ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ wellness ---
[WARNING] Using platform encoding (US-ASCII actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 4 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ wellness ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding US-ASCII, i.e. build is platform dependent!
[INFO] Compiling 6 source files to /Users/walk12/Documents/workspace-sts/wellness/target/classes
[WARNING] /Users/walk12/Documents/workspace-sts/wellness/src/main/java/com/kylewalker/wellness/data/EmployeeDaoJdbcImpl.java: /Users/walk12/Documents/workspace-sts/wellness/src/main/java/com/kylewalker/wellness/data/EmployeeDaoJdbcImpl.java uses unchecked or unsafe operations.
[WARNING] /Users/walk12/Documents/workspace-sts/wellness/src/main/java/com/kylewalker/wellness/data/EmployeeDaoJdbcImpl.java: Recompile with -Xlint:unchecked for details.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.374 s
[INFO] Finished at: 2014-10-18T07:48:37-07:00
[INFO] Final Memory: 15M/153M
[INFO] ------------------------------------------------------------------------`

「/Users/walk12/Documents/workspace-sts/wellness/src/it/java が追加されました」と言っていますが、実際のファイル構造は何も変わっていないようです。「src/it/java」がどこかにあるはずですよね?代わりに、プロジェクトを閉じて開き、[更新] を押した後でも、得られるのは次のとおりです。ここに画像の説明を入力

4

1 に答える 1

1

build-helper-maven-plugin:add-test-source 追加のテスト ソース ディレクトリをビルド コンテキストに追加するために使用されます。これは、実際に新しいディレクトリが作成されるという意味ではありません。これは、既存の一連のディレクトリをビルドに追加するだけであることを意味します。これらのディレクトリは、ユーザーが手動で作成したものでも、ビルド中に他のプラグインによって作成されたものでもかまいません。

src/it/javabuildhelper m2e コネクタが既にインストールされていると仮定すると、m2e はテスト ソース フォルダーとして追加されているはずです。以下の手順に従ってこれを確認できます

  1. プロジェクトを右クリックし、Properties

  2. ここで選択するBuild Pathと、src/it/java[ソース] タブに不足しているソース フォルダーが表示されます。

しかし、プロジェクト エクスプローラーに期待どおりの形式で表示するには、ディレクトリが実際に存在するか、他のプラグインによって生成されている必要があります。

于 2014-10-18T16:38:12.603 に答える