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

2022-09-01 23:55:22

我正在为我们的项目(Weld)创建Maven 2原型。我希望能够根据在 .例如,我预见到以下提示:archetype:generate

Define value for groupId: : com.example
Define value for artifactId: : myproject
Define value for package:  com.example: :
Define value for includeGradleSupport: : y

根据 includeGradleSupport 的值,我想在生成的项目中包含(或不包含)该文件。如果用户不想要Gradle支持,我不想用不必要的文件来混乱生成的项目。build.gradle

另一个例子是,如果用户想要Jetty支持,我可能需要提供Jetty Web片段(也许激活侦听器)。

这一切都是关于根据开发人员打算使用的内容自定义项目。虽然我可以创建一个完全不同的原型,但有时更改非常小,以至于包含/排除文件会更容易。

有没有办法使用描述符来控制此行为?archetype-metadata.xml


答案 1

我个人会根据用户要求移动可以删除/添加的零件,并将其放入不同的maven配置文件中,以便您可以使用不同的配置文件构建不同的零件


答案 2

我可以看看在原型插件中启用此功能需要什么编码。

我认为今天这样做的主要工具是在原始构建期间有条件地产生两种不同的原型工件。然后,原型用户将显式使用您的体系结构 - withthing 或 yourarchetype-withoutthing。

我知道这并不是你所追求的,我同意你所要求的是一个明智的用例。


推荐