1

Javaテストクラス内のキーストアファイルであるリソースファイルを参照したいと思います。このプロパティは通常、ローカルまたはリモートで実行されているJDKを指すプロパティファイルからロードされます。

Mavenがデプロイプロセスの一部としてビルドを実行すると、最初にビルドサーバー上にビルドされます。キーストアファイルをクラスパスに配置できるようにしたいので、ビルドサーバーに強い依存関係を置く必要はありません(これにより、キーストアをビルドサーバーに配置します)

単体テストをローカルに接続すると、この構成では正常に機能しますが、ビルドサーバーでビルドを実行するとこのパスは失敗します。なぜこれが失敗しているのか、誰かが光を当てることができますか?そして私は解決するために何ができますか?私はその理由を知っていると思いますが、明確化は素晴らしいでしょう。

現在の構成

<bean id="httpClient"
    class="myapp.HTTPClient">
    <property name="trustStoreLocation" value="..\\mywebapp\\target\\test-classes\\truststore" />
    <property name="trustStorePass" value="mypass" />
</bean>
4

1 に答える 1

0

リソースファイルについては、Mavenの標準のディレクトリ構造に従うことをお勧めします。詳細については、(http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)をお読みください。(.cfgまたは.jksまたは.properties)のようなファイルをsrc / test/resourcesおよびsrc/main / resourcesに配置すると、ビルド時にクラスパスで自動的に使用可能になります。さらに、テストファイルとメインリソースファイルを分離する機能を提供します。

たとえば、私のpom.xmlは次のようになります。

<build>
    <finalName>${project.artifactId}</finalName>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
        <resource>
            <directory>src/main/config</directory>
        </resource>
         <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/main/config</directory>
        </testResource>
         <testResource>
            <directory>src/main/resources</directory>
        </testResource>
    </testResources>

    <!-- Other pom.xml stuff -->

</build>

ここで、ファイルが正しくコピーされているかどうかを確認する簡単な方法は、jarを表にして、必要なファイルを確認することです。

mvn build

次に、次のことを行います。

jar -tf target/<your project jar>.jar | grep "<file name you want to verify>"
于 2012-11-21T15:57:34.647 に答える