create 目标在特定的目录结构中创建一个 pom,即默认文件(source、test、resources、test-resources、site-resources)。最基本的使用方法是只使用两个表达式调用目标:要构建的项目的groupId和artifactId 。例如,使用
mvn archetype:create \ -DgroupId=sample.group.id \ -DartifactId=sample-artifact-id
这将在sample.group.id包下创建一个App.java和一个AppTest.java。App.java是一个简单的“Hello World”程序,而AppTest.java是 junit.framework.TestCase 的子类,它有一个始终通过的测试。
您还可以指定其他参数,例如要创建的项目的版本、类的packageName、remoteRepositories和pomRemoteRepositories(请参阅指定远程存储库),以及archetypeGroupId、archetypeArtifactId和archetypeVersion。
如果未指定版本,将使用默认值1.0-SNAPSHOT。此外,如果未指定packageName , maven-archetype-plugin将根据groupId派生类默认包名称(即groupId sample.group.id将具有默认包名称sample.group.id)。
此外,如果未指定archetypeGroupId、archetypeArtifactId和archetypeVersion(如上例所示),则将使用默认值,分别为org.apache.maven.archetypes、maven-archetype-quickstart和1.0-SNAPSHOT。
因此,上述命令与
mvn archetype:create -DgroupId=sample.group.id \ -DartifactId=sample-artifact-id \ -Dversion=1.0-SNAPSHOT \ -DpackageName=sample.group.id \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DarchetypeVersion=1.0-SNAPSHOT
但是,如果您想使用默认以外的其他原型,则必须指定以下参数:archetypeGroupId、archetypeArtifactId和archetypeVersion。
例如,如果您希望创建一个具有groupId my.company.projects、artifactId my-project 的项目,使用具有artifactId my-archetype版本 1.0-archetype-SNAPSHOT 的原型,在groupId my.company.archetypes下,你必须执行
mvn archetype:create \ -DgroupId=my.company.projects \ -DartifactId=my-project \ -DarchetypeGroupId=my.company.archetypes \ -DarchetypeArtifactId=my-archetype \ -DarchetypeVersion=1.0-archetype-SNAPSHOT
但是,如果您要使用的原型具有与默认值相同的元素(archetypeGroupId、archetypeArtifactId或archetypeVersion),则不必指定该元素。
例如,如果您要使用groupId org.apache.maven.archetypes下的maven-archetype-webapp 版本 1.0-SNAPSHOT,您可以简单地使用以下命令
mvn archetype:create -DgroupId=my.company.projects -DartifactId=another-project -DarchetypeArtifactId=maven-archetype-webapp
基于现有 Maven 项目(目前正在开发中)构建原型容器。