小编Thi*_*iru的帖子

在使用maven原型创建项目时,有条件地包括排除文件

我试图创建一个原型,它将有条件地包含基于用户输入的文件.

例如,如果用户将使用此自定义原型并传递参数,如
-DprojectType = webProject-DprojectType = webDBProject


如果webProject仅复制与webProject相关的文件,并且其webDBProject复制与webProject和DB相关文件相关的文件.

我发现有条件的包含/排除文件在不久的将来至少不可能使用archetype-descriptor.

生成项目时,如何有条件地在原型中包含或排除文件?

我的另一个选择是在原型生成后执行目标并包含/删除不需要的文件.但我们不能利用eclipse M2E插件.

我尝试的最后一个选项是利用速度模板本身来执行后处理操作.

由于我们无法在速度模板中实例化对象,因此我尝试使用反射来创建文件实例并删除一些文件,如下所示,

$ somestring.getClass().forName("java.io.File").getMethod("delete",null).invoke($ somestring.getClass().forName("java.io.File").getConstructor($ somestring.getClass()).newInstance("delete.txt"),null)

在速度模板文件中编写上面的行并针对独立的速度java程序运行正常运行.但是当作为maven原型生成器的一部分执行时,同样不起作用.

我试着一步一步地执行,直到获得类,但getConstructor()部分在运行archetype:generate时无法执行.

有没有人尝试过并知道原因或有替代解决方案?

还有谁知道在Maven中使用什么版本的速度引擎?

archetypes maven maven-archetype

10
推荐指数
2
解决办法
1742
查看次数

标签 统计

archetypes ×1

maven ×1

maven-archetype ×1