maven提供了很多便利的功能,不仅使得原本的jar更容易管理。而且它还具有很强大的项目创建功能。可以直接通过mvn archetype:generate来创建项目。在创建的过程中,我们需要填写项目的package和项目名称以及项目的版本。当然也需要选择我们创建项目的模板,我们使用eclipse创建spring项目时,其实也进行了模板的选择。其实这里的工程模板是可以通过maven自己来定义的。所以我们可以通过maven来创建一个模板工程,并在此模板工程里编写公共的类、包、工具以及公共配置等信息来组织一个项目的整体框架。这样我们在新项目中,即可使用我们的模板,从而创建出具有结构的项目,从而节省项目的组织架构的时间。不过这个过程也是需要我们摸索一番的。
这里我们开始创建一个demo的工程,并将其作为模板。使用这个模板创建类似的项目------我们的目的是节省系统架构开发的时间。
- 第一步:创建一个spring项目:
在创建好项目之后,创建项目的组织框架。比如各种包名、各种工具类、各种配置已经pom的配置。组织好这个demo的工程之后,我的效果是这样的:
- 这里注意要在每个空包下创建一个java类。可以是空的类哦!为什么呐?答:maven创建模板工程的时候,会根据一个xml来创建模板工程,这个xml如果识别包呐?我猜它应该是通过文件来复制或者创建的,如果没有文件。那么就不会创建文件的目录。所以我们还是记着要在包下创建.java文件。比如我就创建A.java,然后啥也不做。完了之后给每个包里都扔一个。
第二步:将我们的模板项目创建为真正的模板项目:
- 进入到们的demo项目的pom文件的目录中。执行: mvn archetype:create-from-project
命令执行结束之后,maven会在我的模板项目的target目录中,生成archetype目录,里边包含这我们生成的模板
但是我们这里的模板只是在我们的项目目录下,而我们创建的maven项目一般都是从仓库中选择模板。所以我们需要将我们生成的模板发送到仓库里,就是使用我们的mvn clean install这个命令。但是这里的目录就必须到我们位于target的模板项目里了。具体操作如下。
install成功之后,我们可以在我们本地仓库里看到我们的模板工程了。。。
命令执行成功之后,我们的模板工程就真正的变成一个模板工程了,可以使用了。但是我们在使用的时候,需要填写我们的模板工程信息,这里我们可以在仓库./m2下的archetype-catalog.xml查看。
比如我的工程模板信息如下:
<archetypes>
<archetype>
<groupId>com.example</groupId>
<artifactId>demo-archetype</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>Demo project for Spring Boot</description>
</archetype>
</archetypes>
</archetype-catalog>
第三步:使用我们的模板
- 这里我们可以直接使用命令的方式执行:
mvn archetype:generate
-DgroupId=com.tianjingle.wang #新建项目的工程名
-DartifactId=demotianjingle #要创建的项目名称
-Dversion=1.0.0-SNAPSHOT #要创建的项目的版本号
-Dpackage=com.tianjingle.wang #要创建的项目的基础包名
-DarchetypeGroupId=com.example #./m2下的xml里的
-DarchetypeArtifactId=demo-archetype #./m2下的xml里的
-DarchetypeVersion=0.0.1-SNAPSHOT #./m2下的xml里的
-B
-DarchetypeCatalog=local #从本地仓库选取模板
-DinteractiveMode=false
之后就可以在执行命令的目录下发现我们通过模板工程来创建的工程了。
- 当然,我们可以使用java代码进行创建。
String command = "cmd.exe mvn archetype:generate"
+ " -DgroupId=com.tianjingle.wang"
+ " -DartifactId=demotianjingle"
+ " -Dversion=1.0.0-SNAPSHOT"
+ " -Dpackage=com.tianjingle.wang"
+ " -DarchetypeGroupId=com.example"
+ " -DarchetypeArtifactId=demo-archetype"
+ " -DarchetypeVersion=0.0.1-SNAPSHOT"
+ " -B"
+ " -DarchetypeCatalog=local"
+ " -DinteractiveMode=false";
File file=new File("要创建工程的文件夹路径");
#通过模板进行创建项目
Runtime.getRuntime().exec(command,null,file);
至此,我们的模板工程创建完毕了。现在我们再不用重复写项目的结构了。我觉得这个效率应该会有很大的提升吧。尤其是在项目比较多而且项目类似的情况下,当然通过java代码来创建项目也会让我们的项目创建和管理极大的方便。