关于如何创建新的maven原型的任何好的高级指南?

时间:2011-01-25 15:44:04

标签: java maven archetypes

我正在寻找关于如何创建新的maven原型的指南,其中涉及使用参数来创建目录和文件名,其中参数用作文件名中的前缀和由此创建的包结构/目录的一部分原型。

我能找到的只是关于如何制作非常简单的项目的非常简单的说明。

6 个答案:

答案 0 :(得分:8)

答案 1 :(得分:7)

我想我找到了一个网站,一旦我发现Velocity模板被用作原型流程的一部分,它会帮助我一点点。

HowToCreateMavenArchetypeFromProject

答案 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)