是否可以将原型和普通Maven插件的功能组合到一个插件中?我可以制作一个Maven插件来生成一个项目,然后构建该项目?
我有一种自定义语言,可以编译成Java源代码。我写了一个Maven插件,它在generate-sources
阶段执行此操作,将Java源添加到项目中,并构建项目。它按我的预期工作。
但是,要使用它,我需要先写出一个引用我的插件的pom.xml
文件,并描述输入文件的位置。我希望能够直接从原始输入文件到单个maven命令中的编译代码。
例如,假设我有这样的目录结构:
my-project/
some-input-file.dsl
我想运行
bash$ mvn com.waisbrot.plugin:generate -DgroupID=com.waisbrot package
和Maven的运行完之后有:
my-project/
some-input-file.dsl
pom.xml
target/
generated-sources/
plugin/
SomeInputFile.java
classes/
com/
waisbrot/
SomeInputFile.class
some-input-file-1.0.jar
最好的办法是配置您的插件安装到生命周期在你显示的那个pom中。而已。您的dsl文件的位置应该更改为src/main/name-of-your-dsl/xyz-input-file.dsl。像其他DSL一样,使用Groovy等Maven进行处理。 – khmarbaise
可以移动文件并将其新位置存储在生成的POM中;我不在乎这一点。我问的是,如果我可以将非Maven目录转换为Maven项目,然后同时执行该新创建项目的Maven目标。 –