2017-03-16 54 views
0

我的主要搖籃項目A依賴於另一個搖籃項目B. A和B具有log4j2.xml文件中搖籃資源文件衝突解決(log4j2.xml)

src/main/resources/log4j2.xml 

當我運行./gradlew build,gradle這個將包裝項目B中的log4j2.xml文件在最終的JAR文件中。有沒有一種方法可以指定我想使用Gradle包含哪個log4j2.xml文件?

我使用的jar插件

jar { 
    zip64=true 

    from { 
     configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
    } 
} 
+0

請問你的項目結構是什麼樣子?這是一個有兩個子項目的單根項目嗎?或者你是否將其他項目用作圖書館?你使用陰影jar插件嗎? – sm4

+0

是的,這是一個根與多個子項目。我沒有使用陰影罐,只是罐子。 –

回答

0

您可以更改項目的文件名稱的log4j2.xml到log4j2_final.xml然後明確指定該配置文件。

有關更多詳細信息,請參閱Log4j2常見問題解答。

如何指定配置文件位置?

默認情況下,Log4j的查找在classpath中,配置文件命名log4j2.xml(沒有的log4j.xml)。

您還可以指定配置文件的完整路徑與此係統屬性:-Dlog4j.configurationFile =路徑/到/ log4j2.xml

該屬性也可以包含在一個名爲log4j2類路徑中的資源文件。 component.properties。