我写了一个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
,则会在正确的位置创建文件,这解释了我帖子的标题。
答案 0 :(得分:1)
使用$ {basedir}变量:
<docDestination>${basedir}/src/main/webapp/static</docDestination>
这应该使用相应模块当前使用的basedir(无论这是顶层还是子模块)。