我正在尝试创建一个maven-plugin,它基于模板文件生成新文件(基本上使用FreeMarker语言)。如果我从maven-plugin项目的目录运行maven插件,我可以成功生成文件,因为我的插件根据相对路径访问模板文件。
但是,如果我尝试在其他一些java项目目录中运行插件,我找不到模板文件。我不想将模板文件复制到新的java项目中。
我搜索了一下,当另一个项目使用插件但是没有成功时,maven插件是否可以访问自身内的文件。大多数文档都是指访问java项目文件,而不是maven-plugin文件。
这是否可行或是否有更好的方法/解决方法来解决问题?
编辑(目录结构):
Maven-Plugin (FileGenerator):
src
--main
--java
--FileGenerator.java (references the TemplateFile based on the path to the root project)
TemplateFile
如果我将该插件作为独立版运行,我可以基于TemplateFile生成新文件。我实现了以下结构
Maven-Plugin (FileGenerator):
src
--main
--java
--FileGenerator.java
TemplateFile
NewFile1
NewFile2
但是,如果我使用命令mvn myplugin:mypluginplugin:1.0-SNAPSHOT:build
Another Java Project
src
--main
--java
--AnotherFile.java
pom.xml
我收到错误,提到无法找到TemplateFile。有没有办法让插件引用TemplateFile而不管它在哪里运行?
运行插件后的理想输出
Another Java Project
src
--main
--java
--AnotherFile.java
pom.xml
NewFile1
NewFile2