2011-01-10 2 views
1

値をファイルに代入する前に、単純なString.replace()呼び出しなど、プロパティの値をMavenに変換する方法はありますか?Mavenプロパティを代入するときの値を変更する

私は特定のディレクトリ構造を持つmaven depenedenciesを含むアセンブリを作成しようとしています。特に、各アーティファクトをgroupIdにマップするディレクトリ構造に配置する必要があります。つまり、アーティファクトorg.example.app:library1:jarがある場合は、ディレクトリorg/example/app/library1.jarに配置します。

依存アーチファクトをサブディレクトリに入れるためにアセンブリ記述子を作成しようとしましたが、groupId(ドット表記)をパスに変換できないポイントに達しました。以下は、使用しているアセンブリファイルのdependencySet部分です。

<dependencySets> 
    <dependencySet> 
    <outputFileNameMapping>${artifact.groupId}/${artifact.artifactId}/${artifact.version}/${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping> 
    <outputDirectory>.</outputDirectory> 
    <unpack>false</unpack> 
    <useTransitiveDependencies>true</useTransitiveDependencies> 
    <useTransitiveFiltering>false</useTransitiveFiltering> 
    <useProjectArtifact>false</useProjectArtifact> 
    </dependencySet> 
</dependencySets> 

P.S. Assemblyプラグインのリポジトリモードについても調査しましたが、情報が多すぎます(SHA1やMD5ハッシュ、Maven POMファイルなど)。

答えて

0

アセンブリ記述子ファイルはアセンブリプラグインで使用され、それ自体で$ {my.property}などのMavenプロパティを埋め込むメカニズムはありません。しかし、回避策として、アセンブリ記述子ファイルを(ある場所から別の場所にコピーされている間に)フィルタリングするために、Mavenリソースプラグインを使用することができます。これは、あなたが探している代替を有効にします。

次に、Mavenアセンブリプラグインでフィルタリングされた記述子ファイルを使用するようにします。

関連する問題