maven-assembly-plugin学習
5398 ワード
前回の記事では、mavenのメカニズムに慣れていない場合、自分の必要なパッケージフォーマットを実現するためにmaven ant taskを使用してmaven+antで非標準パッケージを実現することについて議論しましたが、ここではmavenでパッケージタスクに対して提供されるアライメントプラグイン:assembly pluginについて説明します. なお、上記(初学maven(4)-maven ant taskを使用して非標準パッケージを実現する)の項目を例に挙げると、パッケージするプログラムは以下の通りである. demo1 |____lib |_____demo1.jar |_____*****.jar |_____*****.jar |____config |_____*****.properties |_____*****.xml |____log |_____*****.log |____run.bat |____run.sh Javaプロジェクトと同様に、ファイル構造は次のとおりです. demo1 |____src/main/java |____src/main/config |____src/main/bin |____src/main/resources |____src/main/assemble |____src/test/java |____src/test/resources |____target |____pom.xml src/main/assembleディレクトリとantのないbuildファイルを追加した以外は、src/main/javaがjavaコードをドロップします.src/main/resourcesの下に*.propertiesファイルが置かれています.このリソースファイルはjarにパッケージされており、コンテンツのパッケージ後に変更する必要はありません.src/main/configは、インストール実行前に一時的に変更する必要がある標準log 4 j.xmlを下に置きます.src/main/binの下に実行可能ファイルを配置します. assembly pluginの使い方は比較的簡単で、主に:1.pom.xmlを修正する pom.xmlでは、次のように設定されています.
ここでmaven-assembly-plugin のmaven-assembly-pluginはこのプラグインの標準的な名前で、maven 2.0.*にデフォルトのバージョンは appendAssemblyIdプロパティは、生成されたパッケージファイルのファイル名にassembly idが含まれているかどうかを制御します. descriptorプロパティはmaven-assembly-pluginのプロファイルを指定します.もちろん、私が設定したのはsrc/main/assemble/package.xmlです.複数の使用を許可し、機能が強く、もちろん使い方も複雑で、簡単な状況では十分です. executionの設定は、maven-assembly-pluginを標準のmavenパッケージに継承するため、maven-packageを実行するときにmaven-assembly-pluginの操作を実行し、必要なカスタムパッケージを実現します.2. assemble descriptor file 私のsrc/main/assemble/package.xmlの内容は以下の通りです.
詳細な文法は説明しません.公式ガイドを参照してください.非常に詳細な説明があります.Assembly Descriptor Format reference 簡単に説明します. 1) format format=zipパッケージの最終ファイルフォーマットをzipに設定. サポートされる他のフォーマットには、gz、tar、tar.gz、tar.bz 2があります. 2) fileset
src/main/binディレクトリの下のファイルをルートディレクトリ(/)の下にパッケージします.
src/main/configディレクトリのファイルをconfigにパッケージします. 3) dependencySets
scopeがruntimeの依存パッケージをlibディレクトリにパッケージします. まとめて、pom.xmlにmaven-assembly-pluginを導入し、assemble descriptor fileをオンデマンドで設定し、最後にeclipseでRun As->Maven packageを実行すると、targetディレクトリの下に*****.zipファイルが表示され、フォーマットと要求が完全に一致します.
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- not append assembly id in release file name -->
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assemble/package.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
ここで
<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
<id>package</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/config</directory>
<outputDirectory>config</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
詳細な文法は説明しません.公式ガイドを参照してください.非常に詳細な説明があります.Assembly Descriptor Format reference 簡単に説明します. 1) format format=zipパッケージの最終ファイルフォーマットをzipに設定. サポートされる他のフォーマットには、gz、tar、tar.gz、tar.bz 2があります. 2) fileset
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
src/main/binディレクトリの下のファイルをルートディレクトリ(/)の下にパッケージします.
<fileSet>
<directory>src/main/config</directory>
<outputDirectory>config</outputDirectory>
</fileSet>
src/main/configディレクトリのファイルをconfigにパッケージします. 3) dependencySets
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
scopeがruntimeの依存パッケージをlibディレクトリにパッケージします. まとめて、pom.xmlにmaven-assembly-pluginを導入し、assemble descriptor fileをオンデマンドで設定し、最後にeclipseでRun As->Maven packageを実行すると、targetディレクトリの下に*****.zipファイルが表示され、フォーマットと要求が完全に一致します.