使用maven原型创建新项目如何指定自定义文件夹名称

时间:2016-07-13 02:45:29

标签: maven maven-archetype

我现在正在尝试创建一个使用spring + mybatis框架的maven原型。有一个mybatis xml文件:src/main/resources/archetype-resources/src/main/resources/sql/myapp/DemoUser.xml,并执行以下命令以使用此原型创建新项目。

 mvn archetype:generate ... -DartifactId=foo.bar -Dpackage=com.foo.bar ...

我想将myapp替换为bar,即我想要sql/bar文件夹中的mybatis xml文件,如何实现?

1 个答案:

答案 0 :(得分:2)

我的方法是src/main/resources/META-INF/maven/archetype-metadata.xml添加此属性

<requiredProperty key="appName">
        <defaultValue>${appName}</defaultValue>
</requiredProperty>

然后在src/main/resources/archetype-resources/pom.xml添加

#set ($artifactId = "${artifactId}")
#set ($index = $artifactId.indexOf('.'))
#set ($index = $index + 1)
#set ($appName = $artifactId.substring($index))

并记得将文件夹名称更改为

src/main/resources/archetype-resources/src/main/resources/sql/__appName__/DemoUser.xml

所以当你现在执行mvn archetype:generate ... -DartifactId=foo.bar ...时,你可以得到

│   └── resources
│       └── sql
│           └── bar
│               └── DemoUser.xml

参考doc:http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html