我正在寻找关于如何创建新的maven原型的指南,其中涉及使用参数来创建目录和文件名,其中参数用作文件名中的前缀和由此创建的包结构/目录的一部分原型。
我能找到的只是关于如何制作非常简单的项目的非常简单的说明。
答案 0 :(得分:8)
答案 1 :(得分:7)
我想我找到了一个网站,一旦我发现Velocity模板被用作原型流程的一部分,它会帮助我一点点。
答案 2 :(得分:3)
我认为我们遇到了同样的问题,最后我通过这个问题解决了这个问题article
假设您要生成包 com.company.base 。 dal.dao ,我们调用 com.company.base 是root包, dal.dao 是核心包,然后将你的模板java文件放在src / main / java / dal / dao下,并调整META-INF / maven / archetype中的packaged="true"
- metadata.xml如下
<fileSet filtered="true" packaged="true" encoding="GBK"><!--packaged="true" tells maven to copy the core package in to root package while creating a project.-->
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
说,如果在执行mvn archetype:generate之后设置-Dpackage=com.alibaba.china
,它将创建java源包作为com / alibaba / china / dal / dao / sample.java
如何在sample.java中提供前缀包信息,只需使用$ {package},如下所示
package ${package}.dal.dao;
archetype插件会将$ {package}替换为-Dpackage作为速度模板
答案 3 :(得分:1)
即使我在寻找同样的事情。 即使我发现Maven主页非常基本,也不符合我们的要求。
我甚至试过HowToCreateMavenArchetypeFromProject 但我还有一个问题。如何在生成该类型的原型的项目时调用原型的特定文件。具体来说,如果我有一个java类App.java如何在创建项目时调用它?
create-archetype-from-project会发生什么,它会创建一个具有相同文件和目录结构的项目,我们需要再次运行它才能实现这一目标。
此外,$ {groupId}和此类内容仅适用于maven文件。如果我有一个属性文件并想使用用户输入的artifactId怎么办?
如果你碰到任何好东西,请告诉我。同时,当我找到任何解决方案时,我也会通知您。
由于
答案 4 :(得分:1)
来自maven documentacion:http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html
文件集定义Archetype插件使用jar文件中项目文件生成项目的方式。如果文件或目录名称包含属性模式,则会将其替换为相应的属性值。
如果您可以将文件命名为
__的artifactId ___ local.properties
...当你使用artifactId = foo生成proyect时,它将包含这个文件:
foo_local.properties
答案 5 :(得分:0)