2

Maven/Java アプリケーションがあります。アプリケーションの一部では、いくつかのドキュメントをダウンロードできます。これがプロジェクトのセットアップです。

+src
    +main
        +resources
            +downloads
                MyDocument.docx
            jdbc.properties
pom.xml

jdbc.propertiesハードコードされた値が内部にある場合、ダウンロードは正しく機能します。ただし、アプリケーションを更新して Maven プロファイルを使用し、さまざまな環境にさまざまなデータベース接続を指定しようとしています。で次のように動作させることができましたpom.xml

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

ただし、jdbc.propertiesファイルに正しい環境データベース情報が正しく取り込まれたとしても、ダウンロード機能は機能しなくなりました。ファイルがダウンロードされますが、開こうとすると と表示されますThe file MyDocument.docx cannot be opened because there are problems with the contents.

を に変更して、を false に変更する<directory>場所をsrc/main/resources/*.properties追加してみました。しかし、どちらのアプローチもうまくいきませんでした。Maven フィルタリングによってファイルが破損するのを防ぐにはどうすればよいですか?<resource><filtering>src/main/resources/downloads

参考までに - WAR の内部を調べましたが、そこからドキュメントを開くこともできません (既に破損しています)。

4

1 に答える 1

2

更新: https://stackoverflow.com/a/10025058/516167からのより良いソリューション

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <encoding>UTF-8</encoding>
    <nonFilteredFileExtensions>
      <nonFilteredFileExtension>xls</nonFilteredFileExtension>
    </nonFilteredFileExtensions>
  </configuration>
</plugin>

MyDocument.docx (*.docs) などのファイルをフィルタリングから除外する必要があります。

<build>
   <resources>
      <resource>
        <directory>src/main/resouces</directory>
        <filtering>true</filtering>
        <excludes>
          <exclude>**/*.docx</exclude>
        </excludes>
      </resource>
    </resources>
</build>

または、次のようなダウンロード用の代替ディレクトリを定義します。

<build>
   <resources>
      <resource>
        <directory>src/main/downloads</directory>
      </resource>
    </resources>
</build>
于 2013-03-17T10:24:59.797 に答える