1. ホーム
  2. メイヴン

[解決済み】Mavenでファイルをコピーするためのベストプラクティス

2022-04-28 01:47:30

質問

Maven2を使って、開発環境から開発サーバーのディレクトリにコピーしたい設定ファイルや各種ドキュメントがあります。不思議なことに、Mavenはこのタスクに強くないようです。

オプションの一部を紹介します。

  • シンプルに コピー タスク
<copy file="src/main/resources/config.properties" tofile="${project.server.config}/config.properties"/>

  • Antプラグインを使用して コピー をAntから取得します。

    • タイプのアーティファクトを構築します。 ビュッ のタイプである POM のアーティファクトと並んでいます。 ジャー そして アンパック のアーティファクトをリポジトリからターゲットディレクトリにコピーします。

    • メイヴンリソース プラグインをインストールします。

    • Maven Assemblyプラグイン -- しかし、これは多くの手動定義が必要なようです、私は物事をシンプルかつ慣習的に行いたいときに。

    • このページ コピーするためのプラグインを作る方法まで紹介しています。

    • メイヴンアップロード プラグインをインストールします。

    • maven-dependency-plugin(メイヴン・ディペンデンシー・プラグイン コピー は、以下のとおりです。



Mavenはこのような標準的な作業を手間をかけずに行うことに優れているはずです。

何かアドバイスはありますか?

解決方法は?

Antrunプラグインを敬遠しないでください。 AntとMavenは対立するものだと思いがちですが、そうではありません。 やむを得ず一回限りのカスタマイズをする必要がある場合は、コピータスクを使いましょう。

<project>
  [...]
  <build>
    <plugins>
      [...]
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>deploy</phase>
            <configuration>
              <target>

                <!--
                  Place any Ant task here. You can add anything
                  you can add between <target> and </target> in a
                  build.xml.
                -->

              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

この質問に答えるにあたり、質問された内容の詳細を中心に説明します。 ファイルをコピーするにはどうしたらいいですか? この質問と変数名から、次のような大きな疑問が浮かびます:"サーバーのプロビジョニングに対処するためのより良い方法はありますか? ビルド環境をもう少し共有すれば、もっと良い方法があるかもしれません。複数のサーバーをプロビジョニングするためのプラグインがあります。 サーバーのルートに解凍されたアセンブリを添付していただけませんか? どのサーバーを使用していますか?

繰り返しになりますが、もっと良い方法があると思います。