2013-02-28 54 views
2

問題。我有各種特定於環境的配置文件,我希望在運行時將其包含在類路徑中,但我不希望這些文件成爲WAR本身的一部分。例如,我有一個啓動了調試的開發環境的log4j.xml文件,以及一個包含許多環境特定憑證,端點等的屬性文件。如何在Gradle Tomcat插件中使用外部化配置文件?

我想要這些以外的戰爭,因爲我想發佈相同的戰爭我測試,而不是建立單獨的環境特定的戰爭。我可能會在WAR中包含多個特定於環境的配置集(類似於Maven和Spring提供的配置文件功能),但我不希望這樣做。

獨立雄貓有shared.loader功能(在catalina.properties)和Jetty有extraClasspath,但我不知道如何使用Gradle Tomcat插件來做到這一點。有沒有辦法?

相關文章。以下帖子是相關的,但它們似乎涉及將配置文件複製到最終被拉入WAR文件的位置。

回答

1

想出了一個辦法做到這一點:

buildscript { 
    repositories { mavenCentral() } 
    dependencies { 
     classpath "org.gradle.api.plugins:gradle-tomcat-plugin:0.9.7" 
     classpath files("/path/to/config/files") 
    } 
} 
0

您可以嘗試使用屬性additionalRuntimeJars這一點。這個名字有點不合適,但其目的是爲Tomcat的類加載器添加外部JAR。

[tomcatRun, tomcatRunWar]*.additionalRuntimeJars << file("/path/to/config/files") 

[tomcatRun, tomcatRunWar]*.additionalRuntimeJars = [file("/path/to/config/files")] 

我不知道這是否會工作,但它是值得一試。如果這不起作用,如果你可以在GitHub上爲它打開一個問題,那將是非常好的。

+0

聽起來不錯本傑明。我會看看這個。如果這樣做,我的想法是,這種方法優於我發佈的答案,因爲它限制了額外的類路徑到Tomcat插件的範圍。請注意,我想添加配置文件的目錄而不是添加JAR,所以我們會看到。 – 2013-02-28 17:36:30

+0

我看着AbstractTomcatRunTask。屬性名稱(additionalRuntimeJars)是正確的,但它無法使用任一建議的公式。我會創建這個問題。再次感謝。 – 2013-02-28 17:46:48

+0

對於那些想要遵循它的人:https://github.com/bmuschko/gradle-tomcat-plugin/issues/41 – 2013-02-28 17:59:02

相關問題