2010-05-05 38 views
0

我想在本地運行時包含此文件,但在部署時將其排除。我試了下面的這個似乎不起作用。如何在部署時排除屬性文件

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
     <execution> 
    <phase>package</phase> 
    <goals> 
     <goal>jar</goal> 
    </goals> 
    <configuration> 
     <excludes> 
     <exclude>filename.properties</exclude> 
     </excludes> 
    </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

可能您可以提供更多詳細信息,您嘗試了什麼以及您使用的屬性文件類型?可能我們有其他想法? – khmarbaise 2010-05-05 15:56:05

+0

假設我有項目A,B,其中B是A的依賴關係。我想在開發中對其進行設置,我不需要將屬性文件從B複製到A.但是,當我部署A時,我想要能夠傳入不同的屬性文件。 – Huy 2010-05-05 16:11:21

+0

這僅取決於類路徑中的順序,因此您可以提供不同的屬性文件。 – khmarbaise 2010-05-05 16:17:15

回答

0

您應該將該屬性文件放入src/test/resources中,而不是單元測試等可用,但它不會被部署。

+0

我不想把它放在/ src/test/resource中的原因是因爲當我在其他內部項目中使用它作爲依賴項時,我不想將此屬性文件複製到這些項目中。我想在開發中使用這個屬性文件,但在生產中,我希望能夠使用不同的文件。 – Huy 2010-05-05 16:07:47

+0

只需將其他屬性文件放入src/main/resources中,以便它將正常使用並用於部署。 – khmarbaise 2010-05-05 16:15:57

+0

問題是我不想在dev屬性文件中存儲生產用戶名/密碼。這就是爲什麼我需要在部署時使用不同的文件進行替換。 – Huy 2010-05-05 17:25:46

0

我想在開發中使用此屬性文件,但在生產中,我希望能夠使用不同的文件。

有幾種方法可以達到這個目標,但這對於配置文件(以及可選的過濾)來說是一個完美的用例。

Building For Different Environments with Maven 2頁面解釋瞭如何管理不同的屬性文件,並使用Maven Antrun插件根據使用的配置文件選擇「正確」插件。

除了使用Antrun插件,您還可以在POM的不同配置文件中將環境特定值聲明爲properties,並使用Maven過濾。完整的示例請參見Using Maven profiles and resource filtering。如果您需要保護一些信息(您可以在~/.m2/settings.xml內的配置文件中「隱藏」),這是非常好的。有關此說明,另請參閱Tips and Tricks

或者,您可以將它們放在「過濾器文件」中並根據配置文件應用正確的過濾器,而不是將配置文件放入配置文件中。這是上述解決方案的一個小變化。一個例子見A Maven2 multi-environment filter setup

相關問題