23

我正在为我们的项目(焊接)创建 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 的值,我想build.gradle在生成的项目中包含(或不包含)该文件。如果用户不想要 Gradle 支持,我不想将生成的项目与不必要的文件混淆。

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

这完全是基于开发人员打算使用的项目定制。虽然我可以创建一个完整的其他原型,但有时更改是如此微小,以至于包含/排除文件会更容易。

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

4

4 回答 4

1

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

于 2010-01-06T19:16:35.730 回答
0

感谢丹的信息!

我只是看了看原型插件源代码,http://jira.codehaus.org/browse/ARCHETYPE-58似乎没有解决这个问题。

刚刚创建了http://jira.codehaus.org/browse/ARCHETYPE-424来跟踪它。

于 2013-01-17T09:00:14.637 回答
0

虽然我可以创建一个完整的其他原型,但有时更改是如此微小,以至于包含/排除文件会更容易。

这句话让我想...

看起来你有一个默认的项目结构。
假设它很大,有很多文件。当然,您不想在不同的原型中复制逻辑和文件。

现在有时,一个项目有一个额外的行为(与 Gradle 相关)。
这听起来是另一个原型的典型用例,它不是从无到有,而是在第一个原型之后。我在网上看到过几个此类原型的例子。仅当项目需要 Gradle 时,开发人员才会触发此原型。:-)

所以我建议:创建你的 Graddle 原型,只添加与 Gradle 相关的文件

于 2009-12-21T07:17:08.377 回答
0

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

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

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

于 2009-12-18T05:40:53.820 回答