2012-07-11 73 views
0

我寫了一個Maven插件,在我的項目的類路徑上創建一些XML文件。 Maven項目相當複雜,並且有一個包含許多子項目的主項目(爲更大的應用程序提供思考服務)。Maven插件工作目錄不常數

插件需要在pom.xml目錄參數,它是相對於類路徑是這樣的:

<docDestination>src/main/webapp/static/</docDestination> 

然而,當我嘗試通過new File(docDestination)訪問此文件夾,生成的目錄取決於從中運行觸發插件的mvn install命令的項目(或子項目)。

插件只在其中一個子項目的pom.xml中指定,但是如果我從父項運行mvn-install,它將在父應用程序的src/main/...文件夾中創建XML文件。如何讓插件使用聲明的項目的文件系統而不是父項目的文件系統?

我應該注意到,如果我導航到終端中的子項目,並在該目錄中運行mvn install,則會在正確的位置創建文件,這解釋了我的文章的標題。

+1

我想你錯過了添加當前項目的basedir,它可以據我所知由注入的maven參數(MavenProject?)繼承。否則,您可以將配置更改爲$ {project.basedir}/src/main/webapp/static。 – khmarbaise 2012-07-11 15:04:51

回答

1

使用$ {BASEDIR}變量:

<docDestination>${basedir}/src/main/webapp/static</docDestination> 

這應該使用當前使用的相應模塊的BASEDIR(不管這是否是頂層或子模塊)。

+0

非常感謝你,你在不到15分鐘的時間就完成了。 SO應該有一個速度獎勵。 – 2012-07-11 15:13:37

+0

哈哈!很高興聽到它的工作! ;-) – carlspring 2012-07-11 15:36:53