web-dev-qa-db-ja.com

Maven-ERROR StatusLoggerlog4j2構成ファイルが見つかりません

mvn verifyを実行すると、以下のメッセージが表示されます。

enter image description here

提案されているように、私はすでにlog4j2.xmlsrc/test/resourcesの下に置いています(ただし、実際のアプリに同梱したくないため、src/main/resourcesには入れていません) ここ 無駄です。

enter image description here

上記のように、HTMLレポートが生成され、ログファイルが書き込まれ、ビルドが成功します。エラーがどこから来ているのかわかりません。

5
silver

http://logging.Apache.org/log4j/2.x/manual/configuration.html#AutomaticConfiguration クラスパスにlog4j2.xmlを追加すると役立つはずです。

JSONファイルが見つからない場合、XMLConfigurationFactoryはクラスパスでlog4j2.xmlを見つけようとします。

したがって、それでもエラーメッセージが表示される場合は、ソースに問題はありません。 maven-cucumber-reportingプラグインに問題があるようです。ここで説明されているように http://maven.Apache.org/guides/mini/guide-maven-classloading.html

プラグインクラスローダーには、現在のプロジェクトの依存関係もビルド出力も含まれていないことに注意してください。

Mavenプラグインが独自のクラスパス(ソース/リソースを含まない)でlog4j構成を見つけられない場合は、エラーメッセージが表示されます。そうです、唯一の解決策は修正を加えてリリースを待つ https://github.com/damianszczepanik/cucumber-reporting/issues/675

4
Yuriy Alevohin

最新のCucumberバージョン3.15.0を使用します(これを書いている時点で)。問題は 問題#675 として解決されました。 commit from pull request この問題を修正するためのものがありましたが、利益を得るには次のバージョンがリリースされるまで待つ必要があります-またはビルドするローカルでバージョンをスナップショットし、問題が解決するかどうかを確認します。

2
kriegaex

実行->実行構成->クラスパス->ユーザーエントリ->詳細オプション->フォルダの追加->次にフォルダを追加します(この場合はsrc/test/resources-> apply)

今すぐ動作する必要があります:D

1
acochavosdi

彼らのドキュメントによると、「joranConfigurator」を使用して、指定されたファイルから構成をロードできます

ドキュメントリンク

cucumberまたはその依存関係がロギングにlog4jを使用しており、log4j構成ファイルがないため、log4jがそのようなメッセージを出力しているため、このエラーが発生します。

log4j構成ファイルがない場合、log4jは以下のような構成を使用します-

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configuration>

<Configuration status="warn" name="xml_configuration">

    <Appenders>
        <Console name="consoleLogger" target="SYSTEM_OUT">
            <PatternLayout
                pattern="[%level] %m%n" />
        </Console>
    </Appenders>

    <Loggers>
        <Root level="error" additivity="false">
            <appender-ref ref="consoleLogger" />
        </Root>
    </Loggers>
</Configuration>

上記の構成を/src/main/resources/log4j2.xmlに追加すると、log4j2.xmlファイルがない場合と同じ結果になります。

もう1つの方法は、log4j2.xmlファイルをプロジェクトのクラスパスに入れずに直接Mavenに渡すことです。以下のようなもの-

set MAVEN_OPTS="-Dlog4j.configurationFile=file:///path/to/log4j2.xml"
mvn verify
0
Vikas Sachdeva