1

Mavenにインストールされている外部構成(XMLファイル)がいくつかあります。テストクラスパスにそれらを含める必要がありますが、表示されません。

それらはXMLのままである必要があり、Jar内にパッケージ化することはできませんが、これについては、カスタムプラグインなど、他のことを試してみます。

(MavenがJars専用であることを私に知らせないでください-それは単に真実ではありません(そしてあなたがそれが古くなっている/誤った情報であることを保証できると反論する参照を提供する場合)。

依存関係は次のように指定されます。

    <dependency>
        <groupId>some.group</groupId>
        <artifactId>some.artifact</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
        <type>xml</type>
        <classifier>some.classifier</classifier>
    </dependency>

これらのXMLアーティファクトは、ビルドヘルパープラグインによって作成されています(したがって、プロジェクトのPOMには1-2-1はありません)。

私の現在の唯一のハッキーな解決策は、M2_HOMEプロパティを確認し、そこからファイルをロードすることです(Mavenがそれらをプルダウンする依存関係として定義されているため)-しかし、私はこれに満足していません。

編集:次善のハックは、おそらくmaven-dependency-pluginを使用してこれらを出力ディレクトリ(ターゲット/クラス)にコピーすることです。私の設定がJarsに適している場合、これはMavenのバグのようなにおいがします。

編集2:@khmarbaiseはbuild-helper-plugin構成を要求しました:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-artifacts</id>
                    <phase>package</phase>
                    <goals>
                        <goal>attach-artifact</goal>
                    </goals>
                    <configuration>
                        <artifacts>
                            <artifact>
                                <file>target/classes/ddl-seed.xml</file>
                                <type>xml</type>
                                <classifier>ddl-seed</classifier>
                            </artifact>
                            <!-- ... more definitions -->

これにより、すべてのXMLアーティファクトに対して正しいmaven-metadata-local.xmlデータが生成されます。

4

1 に答える 1

0

残念ながら、テストクラスパス上のディレクトリにコピーするというこの臭いハック以外に、Mavenにテストクラスパスに指定されたテスト依存関係を追加させる方法を見つけることができません。

これは(テストの依存関係のための)最も速い方法のようで、JARの作成を回避します。

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>generate-test-resources</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.acme.gid</groupId>
                                <artifactId>com.acme.aid</artifactId>
                                <version>${project.version}</version>
                                <classifier>ddl</classifier>
                                <type>xml</type>
                                <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2012-07-13T16:27:32.797 に答える