Maven插件工作目录不是常量

时间:2012-07-11 14:55:41

标签: file maven plugins maven-2 classpath

我写了一个Maven插件,它在我的项目的类路径上创建了一些XML文件。 Maven项目相当复杂,有一个包含许多子项目的主项目(想想更大应用程序的服务)。

该插件在pom.xml中获取了一个目录参数,该参数与类路径相关,如下所示:

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

但是,当我尝试通过new File(docDestination)访问此文件夹时,生成的目录取决于我运行触发插件的mvn install命令的项目(或子项目)。

插件仅在其中一个子项目的pom.xml中指定,但如果我从父项运行mvn-install,则会在父应用程序的src/main/...文件夹中创建XML文件。如何让插件使用声明它的项目的文件系统而不是父项目的文件系统?

我应该注意,如果我导航到终端中的子项目并在该目录中运行mvn install,则会在正确的位置创建文件,这解释了我帖子的标题。

1 个答案:

答案 0 :(得分:1)

使用$ {basedir}变量:

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

这应该使用相应模块当前使用的basedir(无论这是顶层还是子模块)。