第一步:
打开IDEA,点击create new project,如果没有弹出如下界面,就先将打开的项目关闭,然后重新打开IDEA即可
一开始创建父工程,所以不用选中create from archetype,点击next,如下图:
第二步:
GroupId(一般填反转后公司域名)和ArtifactId(项目名)还有Version,这三个属性目的是标识你的项目的唯一性,点击next,如下图:
第三步:
以上配置按需修改,一般保持默认,很简单就是保存项目的路径,点击Finish,如下图:
第四步:
父工程创建后,由于是父工程,所以建议删除其中的src文件,接下来创建子项目,鼠标移到项目上右键,依次new→点击module,如下图:
第五步:
子工程需要按下图标识1/2/3操作,如下图:
第六步:
输入ArtifactId(项目名),点击next,如下图:
第七步:
可以保持默认,直接点击next,如下图:
第八步:
点击finish完成,如下图:
注意:sontest是my_test的子项目,所以目录是\my_test\sontest,要看仔细,不然会创建失败
创建成功,如下图:
第九步:
子工程也可以是java项目,在new→module时不要选中Create from archetype,点击next,然后填一个ArtifactId(项目名),然后一直next就行了
注意:pom文件中要添加<packaging>jar</packaging>
第十步:
maven子工程创建完毕后,会发现main文件夹里面没有java文件夹,没关系,自己创建就行了,如下图(图中不明白的配置可以百度IDEA相关文档查阅清楚,这里不多叙述):
选中main文件夹,右键,点击New Folder...创建java文件夹后,继续操作就OK,如下图(创建resources文件夹同理):
如上操作后,直接点击Apply即可,如果弹出报错提示那就是因为父工程中有错误的文件目录,如下图(现在无错误,我当初遇到过这个问题是这样解决的,如果不行请自行百度):
先选中父工程,然后看右边Add Content Root中是否除了Excluded Folders还有其他红色的文件目录,如果有删除就行了
整体流程就是这样了,如有遗漏欢迎指出,希望可以帮到大家。
附录
maven提供的41个骨架原型分别是:
1: appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)
2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型)
3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型)
4: appfuse-basic-tapestry(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型)
5: appfuse-core(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型)
6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF的模块化应用原型)
7: appfuse-modular-spring(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型)
8: appfuse-modular-struts(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型)
9: appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型)
10: maven-archetype-j2ee-simple(一个简单的J2EE的Java应用程序)
11: maven-archetype-marmalade-mojo(一个Maven的 插件开发项目 using marmalade)
12: maven-archetype-mojo(一个Maven的Java插件开发项目)
13: maven-archetype-portlet(一个简单的portlet应用程序)
14: maven-archetype-profiles()
15:maven-archetype-quickstart()
16: maven-archetype-site-simple(简单的网站生成项目)
17: maven-archetype-site(更复杂的网站项目)
18:maven-archetype-webapp(一个简单的Java Web应用程序)
19: jini-service-archetype(Archetype for Jini service project creation)
20: softeu-archetype-seam(JSF+Facelets+Seam Archetype)
21: softeu-archetype-seam-simple(JSF+Facelets+Seam (无残留) 原型)
22: softeu-archetype-jsf(JSF+Facelets 原型)
23: jpa-maven-archetype(JPA 应用程序)
24: spring-osgi-bundle-archetype(Spring-OSGi 原型)
25: confluence-plugin-archetype(Atlassian 聚合插件原型)
26: jira-plugin-archetype(Atlassian JIRA 插件原型)
27: maven-archetype-har(Hibernate 存档)
28: maven-archetype-sar(JBoss 服务存档)
29: wicket-archetype-quickstart(一个简单的Apache Wicket的项目)
30: scala-archetype-simple(一个简单的scala的项目)
31: lift-archetype-blank(一个 blank/empty liftweb 项目)
32: lift-archetype-basic(基本(liftweb)项目)
33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/])
34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/])
35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/])
36: myfaces-archetype-helloworld(使用MyFaces的一个简单的原型)
37: myfaces-archetype-helloworld-facelets(一个使用MyFaces和Facelets的简单原型)
38: myfaces-archetype-trinidad(一个使用MyFaces和Trinidad的简单原型)
39: myfaces-archetype-jsfcomponents(一种使用MyFaces创建定制JSF组件的简单的原型)
40: gmaven-archetype-basic(Groovy的基本原型)
41: gmaven-archetype-mojo(Groovy mojo 原型)
---------------------
新建Maven project项目时,需要选择archetype。
那么,什么是archetype?
archetype的意思就是模板原型的意思,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力提供一种系统,该系统提供了一种生成Maven项目的一致的手段。原型将帮助作者为用户创建Maven项目模板,并为用户提供了手段,产生的这些项目模板参数化的版本。
建立Maven项目时,网上建议的分别是
1、cocoon-22-archetype-webapp
2、maven-archetype-quickstart
3、maven-archetype-webapp
那么为什么是这三种模板呢?这三种模板分别代表什么意思呢?
1、cocoon-22-archetype-webapp
建好项目后,项目的结构如下:
可以看到,这个项目结构里包含了applicationContext.xml、log4j.xml、web.xml
pom.xml的内容如下:
<!--?xml version="1.0" encoding="UTF-8"?-->
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelversion>4.0.0</modelversion>
<packaging>war</packaging>
<name>springboot-cocoon</name>
<groupid>com.study.cx</groupid>
<artifactid>springboot-cocoon</artifactid>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupid>org.mortbay.jetty</groupid>
<artifactid>maven-jetty-plugin</artifactid>
<version>6.1.7</version>
<configuration>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8888</port>
<maxidletime>30000</maxidletime>
</connector>
</connectors>
<webappsourcedirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webappsourcedirectory>
<contextpath>/</contextpath>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!--dependency>
<groupId>com.study.cx</groupId>
<artifactId>[the artifact id of the block to be mounted]</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency-->
</dependencies>
</project>
2、maven-archetype-quickstart 建好项目后,项目的结构如下:
在这个项目里,除了pom.xml外,没有其他的xml了,但是有main、test两个包,包里放了一个App、AppTest类
pom.xml的内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0</modelversion>
<groupid>com.study.cx</groupid>
<artifactid>springboot-quickstart</artifactid>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-quickstart</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceencoding>UTF-8</project.build.sourceencoding>
</properties>
<dependencies>
<dependency>
<groupid>junit</groupid>
<artifactid>junit</artifactid>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3、maven-archetype-webapp 建好项目后,项目的结构如下:
在这个项目里,有WEB-INF目录,并且有web.xml和一个index.jsp
pom.xml的内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelversion>4.0.0</modelversion>
<groupid>com.study.cx</groupid>
<artifactid>srpingboot-mavenWebapp</artifactid>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>srpingboot-mavenWebapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupid>junit</groupid>
<artifactid>junit</artifactid>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalname>srpingboot-mavenWebapp</finalname>
</build>
</project>