2013-10-22 114 views
11

有沒有辦法在我的pom.xml中獲取${basedir}的父目錄?目前我有

<earSourceDirectory>${basedir}/EAR/src/main/resources</earSourceDirectory> 

但我需要訪問basedir的父目錄,因爲我的資源位於不同的maven項目。

如何獲得$ {basedir}的父文件夾?

+1

您是否嘗試過'../$ {} project.basedir /'? –

+1

是的..但沒有工作...我試圖打印與<回聲消息=「../$ {project.basedir}」/>得到輸出爲[回聲] ../ C:\用戶\用戶\ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear –

回答

5
${project.basedir}/../ 

但是,我試圖避免訪問不同模塊中的資源。我建議使用unpack goal of the maven-dependency-plugin

+0

我只得到輸出爲C:\ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear /../其中我期望父目錄C:\ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ –

4

請不要試圖走出basedir之外,因爲這被認爲是一種非常糟糕的做法。 即使你現在成功了,它也將是解決方案的一個解決方法的開始,試圖對抗Maven。最終,Maven會贏。 如果開發人員檢出一個帶有pom.xml的目錄,它應該能夠在沒有任何其他目錄引用的情況下運行mvn verify的項目。

如果這些是共享資源,請將其作爲獨立項目並將其作爲依賴項(搜索多模塊項目)。或使用maven-remote-resources-plugin將這些資源拉入您的項目。

+0

感謝Robert提供了一個清晰的解釋。 –

3

在孩子們:

<properties> 
    <main.basedir>${project.parent.basedir}</main.basedir> 
</properties> 

在孫子:

<properties> 
    <main.basedir>${project.parent.parent.basedir}</main.basedir> 
</properties> 
+0

Maven 3已經過時 – tribbloid