Mavenが<pathSeparator>
の値をトリミングしているため、行区切り文字が空白とみなされるため、空の値になります。次に、値がないので、Mavenはデフォルトを使用するように戻ります。私はこの動作を回避する簡単な方法はありません。
その他のオプションがいくつかあります。これは、MavenのアーティファクトIDの代わりの瓶である
のpom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>list-dependencies</id>
<phase>package</phase>
<goals>
<goal>list</goal>
</goals>
<configuration>
<outputFile>target/modules-list.txt</outputFile>
</configuration>
</execution>
</executions>
</plugin>
ターゲット/モジュール-list.txtに
The following files have been resolved:
org.slf4j:slf4j-log4j12:jar:1.7.10:compile
org.hamcrest:hamcrest-core:jar:1.3:test
junit:junit:jar:4.11:test
log4j:log4j:jar:1.2.17:compile
org.slf4j:slf4j-api:jar:1.7.10:compile
javax.ws.rs:jsr311-api:jar:1.1.1:compile
com.sun.jersey:jersey-server:jar:1.19:compile
com.sun.jersey:jersey-core:jar:1.19:compile
:あなたはdependency:list
目標を使用して検討することもできファイル名。おそらく、ビルドを実行している別のマシン間で出力が変化しないので、実際にはより価値があります。 (jarファイルは絶対パスを使用しますが、これは異なるマシン間で異なる場合があります)
MavenアーティファクトIDではなくjarファイル名でなければならない場合は、空白以外の文字<pathSeparator>
の値に変換します。これにより、Mavenが値をトリムした後でも、デフォルトのパス区切りをオーバーライドするものが残ります。
のpom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>list-dependencies</id>
<phase>package</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<outputFile>target/modules-list.txt</outputFile>
<pathSeparator>_${line.separator}</pathSeparator>
</configuration>
</execution>
</executions>
</plugin>
ターゲット/モジュール-list.txtに
/Users/naurc001/.m2/repository/com/sun/jersey/jersey-core/1.19/jersey-core-1.19.jar_
/Users/naurc001/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar_
/Users/naurc001/.m2/repository/com/sun/jersey/jersey-server/1.19/jersey-server-1.19.jar_
/Users/naurc001/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar_
/Users/naurc001/.m2/repository/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar_
/Users/naurc001/.m2/repository/org/slf4j/slf4j-log4j12/1.7.10/slf4j-log4j12-1.7.10.jar_
/Users/naurc001/.m2/repository/junit/junit/4.11/junit-4.11.jar_
/Users/naurc001/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
残念ながら、それは最後に醜いアンダースコアであなたを残します。あなたがそれらをきれいにしたい場合は、それらをきれいにする別の構築ステップが必要です。このファイルをgenerate-resources
フェーズで生成し、process-resources
フェーズでトークン置換を行うには、maven-resources-pluginを使用します。
最後に、文書化の目的でこの情報が必要な場合は、maven-project-info-reports-pluginで提供されているサイトドキュメントの使用を検討してください。
おそらく、改行を含むCDATAセクションでは、 – Aaron
@Aaronいいえ、それはできません。これは、pomに改行を直接入力するようなものです。そのような空白文字はすべて削除されているようです。改行を入力するために私が見つけた唯一の方法は、実際には役に立たない印刷可能な文字で囲むことです。 – radlan
なぜこれが必要ですか? pathSeparatorは通常、OSがパスを区切るために使用する区切り文字です。 – Tunaki