24

何週間もの間、私は maven と格闘して、プロジェクトを「適切に」デプロイできるようにしました。

私はほぼ完了しましたが、頑固な小さな問題が1つあります。

次のように「ディレクトリ」目標でmavenアセンブリプラグインを使用すると

mvn assembly:directory

次のような多くのコンソール出力が得られます。

[INFO] tomcat/conf already added, skipping
 [INFO] tomcat/conf/Catalina already added, skipping
 [INFO] tomcat/conf/Catalina/localhost already added, skipping
 [INFO] tomcat/webapps already added, skipping

基本的にいくつかの FileSet を deploy ディレクトリ内のさまざまなサブディレクトリにコピーする独自のアセンブリ記述子を作成しました。上記のようなメッセージは、ある FileSet からのファイルが、別の FileSet が既に基本的なディレクトリ構造 (および上書き可能な「デフォルト」ファイル) を作成している場所にコピーされているときに表示されます。

だから、私は理解するのに苦労しています:

1) これらのメッセージを抑制する (ただし、「既に追加された」メッセージのみ)、または 2) 上書きを許可するにはどうすればよいですか?

4

6 に答える 6

12

情報メッセージは、PlexusArchiverから送信されます。この問題に関する未解決のバグレポートがあります。

http://jira.codehaus.org/browse/PLXCOMP-129

于 2010-12-27T06:45:52.147 に答える
10

vocaro によって言及された Plexus のバグが修正されました。バージョン 2.4 (執筆時点で最高) で maven-assembly-plugin を使用すると、詳細メッセージが出力されません。

于 2013-12-05T17:12:46.300 に答える
3
  1. Maven 3.1.x 以降にアップグレードします - http://maven.apache.org/maven-logging.htmlを参照してください

    Maven 3.1.0 以降の標準の Maven ディストリビューションは、SLF4J Simple 実装と組み合わせてロギングに SLF4J API を使用します。

  2. simplelogger を使用すると、ログ メッセージをきめ細かく制御できます。不要なメッセージの原因となっているロガーを特定するには、MAVEN_HOME/conf/logging/simplelogger.properties を編集し、次のように変更します。

    org.slf4j.simpleLogger.showLogName=true

  3. ビルド出力で不要なガベージを観察します。

    [INFO] org.codehaus.plexus.archiver.jar.JarArchiver - META-INF/MANIFEST.MF already added, skipping
    
  4. simplelogger.properties に戻り、問題のあるロガーのログ レベルをクラス名ごとに下げ​​ます (また、showLogName を false に戻します)。

    org.slf4j.simpleLogger.log.org.codehaus.plexus.archiver.jar.JarArchiver=警告

于 2014-01-22T18:15:59.377 に答える
2

必要なディレクトリを 1 か所にまとめるには、maven-resources-plugin を copy-resources ゴールとともに使用することをお勧めします。基本的なディレクトリ構造の実行を作成し、カスタマイズされた部分の後続の実行を追加します。目標の上書きプロパティを true に設定すると、カスタム ファイルがデフォルトを上書きすることが保証されます。

次に、アセンブリ記述子で、作成したばかりのファイルセットを使用します。

于 2012-01-23T09:54:20.630 に答える
1

私があなたの質問を正しく理解しているなら、アセンブリプラグインを使用する代わりに、 maven-dependencyプラグインを使用してファイルをコピー/上書きする必要があります...

于 2010-04-09T10:38:50.913 に答える
1

Maven 3.0.4:

配布用に 1 つの jar または組み合わせたソースを作成するときに、これらのメッセージが引き続き表示されます。 http://jira.codehaus.org/browse/PLXCOMP-129 は Maven にないようです。

私の回避策は、さまざまな除外パターン、特にフォルダーに %regex[..] を使用することです。これがどれほど安定しているか、一般的であるかはわかりませんが、明らかに維持する必要があります。ただし、実際のメッセージが表示されたときに表示できないメッセージが多すぎて、何かをする必要がある状況にあります。

NOTICE、LICENSE をスキップします -- アセンブリの後半に、正しいマージされたテキスト バージョンを入れました。とにかく、依存関係からの部分的なものでは十分ではありません。

フォルダー名を一致させると、フォルダー自体ではなく、すべてが除外されます。フォルダーは出力に表示され、INFO レベルの「スキップ」メッセージは表示されません。

<unpackOptions>
  <excludes>
    <exclude>**/NOTICE*</exclude>
    <exclude>**/LICENSE*</exclude>
    <exclude>**/DEPENDENCIES*</exclude>
    <exclude>META-INF/**</exclude>
    <!-- Exclude folders - this removes "skipping" messages -->
    <exclude>%regex[.*/]</exclude>
  </excludes>
</unpackOptions>
于 2012-08-26T17:55:50.580 に答える