首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

教你怎么使用Maven模板生成一个项目

2012-11-21 
教你如何使用Maven模板生成一个项目Maven带有超过40+个Maven模板,让开发者快速开始一个新的Java项目。这一

教你如何使用Maven模板生成一个项目

Maven带有超过40+个Maven模板,让开发者快速开始一个新的Java项目。这一章,演示怎样使用Maven的命令“mvn archetype:generate”生成一个新的Java Web项目。?

下面是使用Maven模板生成项目的步骤。?

1、mvn archetype:generate命令?

定位到要生成的项目的目录下,如“D:\workspace\maven-test”。在命令行窗口,执行“mvn archetype:generate -DarchetypeCatalog=internal”命令以生成一个新的项目。Maven将列出已经存在的40+Maven模板项目供我们选择。在这个例子中,选择19以创建一个简单的Java web应用程序项目模板(这里使用的是Maven 3.03版本,Maven 2可能有所不同):?

使用Maven创建项目过程1?
D:\workspace\maven-test>mvn archetype:generate -DarchetypeCatalog=internal?
[INFO] Scanning for projects...?
[INFO]?
[INFO] ------------------------------------?
[INFO] Building Maven Stub Project (No POM) 1?
[INFO] ------------------------------------?
[INFO]?
[INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom >>>?
[INFO]?
[INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom <<<?
[INFO]?
[INFO] --- maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom ---?
[INFO] Generating project in Interactive mode?
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.?
archetypes:maven-archetype-quickstart:1.0)?
Choose archetype:?
1: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)?
2: internal -> appfuse-basic-spring (AppFuse archetype for creating a web application with Hibernate, Spring and Spring MVC)?
3: internal -> appfuse-basic-struts (AppFuse archetype for creating a web application with Hibernate, Spring and Struts 2)?
4: internal -> appfuse-basic-tapestry (AppFuse archetype for creating a web application with Hibernate, Spring and Tapestry 4)?
5: internal -> appfuse-core (AppFuse archetype for creating a jar application with Hibernate and Spring and XFire)?
6: internal -> appfuse-modular-jsf (AppFuse archetype for creating a modular application with Hibernate, Spring and JSF)?
7: internal -> appfuse-modular-spring (AppFuse archetype for creating a modularapplication with Hibernate, Spring and Spring MVC)?
8: internal -> appfuse-modular-struts (AppFuse archetype for creating a modularapplication with Hibernate, Spring and Struts 2)?
9: internal -> appfuse-modular-tapestry (AppFuse archetype for creating a modular application with Hibernate, Spring and Tapestry 4)?
10: internal -> makumba-archetype (Archetype for a simple Makumba application)11: internal -> maven-archetype-j2ee-simple (A simple J2EE Java application)?
12: internal -> maven-archetype-marmalade-mojo (A Maven plugin development project using marmalade)?
13: internal -> maven-archetype-mojo (A Maven Java plugin development project)?
14: internal -> maven-archetype-portlet (A simple portlet application)?
15: internal -> maven-archetype-profiles ()?
16: internal -> maven-archetype-quickstart ()?
17: internal -> maven-archetype-site-simple (A simple site generation project)?
18: internal -> maven-archetype-site (A more complex site project)?
19: internal -> maven-archetype-webapp (A simple Java web application)?
20: internal -> data-app (A new Databinder application with sources and resources.)?
21: internal -> camel-archetype-component (Creates a new Camel component)?
22: internal -> camel-archetype-activemq (Creates a new Camel project that configures and interacts with ActiveMQ)?
23: internal -> camel-archetype-java (Creates a new Camel project using Java DSL)?
24: internal -> camel-archetype-scala (Creates a new Camel project using Scala DSL)?
25: internal -> camel-archetype-spring (Creates a new Camel project with added Spring DSL support)?
26: internal -> camel-archetype-war (Creates a new Camel project that deploys the Camel Web Console, REST API, and your routes as a WAR)?
27: internal -> jini-service-archetype (Archetype for Jini service project creation)?
28: internal -> jbosscc-seam-archetype (Maven Archetype to generate a Seam Application- Documentation)?
29: internal -> softeu-archetype-seam (JSF+Facelets+Seam Archetype)?
30: internal -> softeu-archetype-seam-simple (JSF+Facelets+Seam (no persistence) Archetype)?
31: internal -> softeu-archetype-jsf (JSF+Facelets Archetype)?
32: internal -> jpa-maven-archetype (JPA application)?
33: internal -> spring-osgi-bundle-archetype (Spring-OSGi archetype)?
34: internal -> bamboo-plugin-archetype (Atlassian Bamboo plugin archetype)?
35: internal -> confluence-plugin-archetype (Atlassian Confluence plugin archetype)?
36: internal -> jira-plugin-archetype (Atlassian JIRA plugin archetype)?
37: internal -> maven-archetype-har (Hibernate Archive)?
38: internal -> maven-archetype-sar (JBoss Service Archive)?
39: internal -> wicket-archetype-quickstart (A simple Apache Wicket project)?
40: internal -> quickstart (A simple Apache Tapestry 5 Project)?
41: internal -> scala-archetype-simple (A simple scala project)?
42: internal -> lift-archetype-blank (A blank/empty liftweb project)?
43: internal -> lift-archetype-basic (The basic (liftweb) project)?
44: internal -> cocoon-22-archetype-block-plain (http://cocoon.apache.org/2.2/maven-plugins/)?
45: internal -> cocoon-22-archetype-block (http://cocoon.apache.org/2.2/maven-plugins/)?
46: internal -> cocoon-22-archetype-webapp (http://cocoon.apache.org/2.2/maven-plugins/)?
47: internal -> myfaces-archetype-helloworld (A simple archetype using MyFaces)?
48: internal -> myfaces-archetype-helloworld-facelets (A simple archetype using MyFaces and facelets)?
49: internal -> myfaces-archetype-trinidad (A simple archetype using Myfaces and Trinidad)?
50: internal -> myfaces-archetype-jsfcomponents (A simple archetype for create custom JSF components using MyFaces)?
51: internal -> gmaven-archetype-basic (Groovy basic archetype)?
52: internal -> gmaven-archetype-mojo (Groovy mojo archetype)?
53: internal -> struts2-archetype-starter (Struts 2 Starter Archetype)?
54: internal -> tynamo-archetype (Creates a CRUD web application based on Tapestry 5 and Tynamo, a model-driven Java web framework)?
55: internal -> tellurium-junit-archetype (Tellurium JUnit project archetype for the Tellurium Automated Testing Framework)?
56: internal -> tellurium-testng-archetype (Tellurium TestNG project archetype for the Tellurium Automated Testing Framework)?
57: internal -> scalate-archetype-empty (Generates a Scalate empty web application)?
58: internal -> scalate-archetype-guice (Generates a Scalate Jog web application)?
Choose a number: 16:?
选择19,Maven会自动下载所需的依赖库文件,这可能会耗费一些时间。?

2、项目详细信息?

接下来,会让填写项目的详细信息:?

填写项目详细信息?
Define value for property 'groupId': : com.xuejava?
Define value for property 'artifactId': : com.xuejavaweb?
Define value for property 'version':? 1.0-SNAPSHOT: : 1.0?
Define value for property 'package':? com.xuejava: :?
完整的过程如下:?

项目生成过程2?
……?
Choose a number: 16: 19?
Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-arc?
hetype-webapp/1.0/maven-archetype-webapp-1.0.jar?
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-arch?
etype-webapp/1.0/maven-archetype-webapp-1.0.jar (4 KB at 1.7 KB/sec)?
Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-arc?
hetype-webapp/1.0/maven-archetype-webapp-1.0.pom?
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-arch?
etype-webapp/1.0/maven-archetype-webapp-1.0.pom (533 B at 0.1 KB/sec)?
Define value for property 'groupId': : com.xuejava?
Define value for property 'artifactId': : com.xuejavaweb?
Define value for property 'version':? 1.0-SNAPSHOT: : 1.0?
Define value for property 'package':? com.xuejava: :?
Confirm properties configuration:?
groupId: com.xuejava?
artifactId: com.xuejavaweb?
version: 1.0?
package: com.xuejava?
Y: : y?
[INFO] ----------------------------------------?
[INFO] Using following parameters for creating project from Old (1.x) Archetype:?
maven-archetype-webapp:RELEASE?
[INFO] ----------------------------------------?
[INFO] Parameter: groupId, Value: com.xuejava?
[INFO] Parameter: packageName, Value: com.xuejava?
[INFO] Parameter: package, Value: com.xuejava?
[INFO] Parameter: artifactId, Value: com.xuejavaweb?
[INFO] Parameter: basedir, Value: D:\workspace\maven-test?
[INFO] Parameter: version, Value: 1.0?
[INFO] ********************* End of debug info from resources from generated POM ***********************?
[INFO] project created from Old (1.x) Archetype in dir: D:\workspace\maven-test\com.xuejavaweb?
[INFO] ------------------------------------?
[INFO] BUILD SUCCESS?
[INFO] ------------------------------------?
[INFO] Total time: 1:13.922s?
[INFO] Finished at: Sun May 22 13:51:03 CST 2011?
[INFO] Final Memory: 6M/16M?
[INFO] ------------------------------------?
D:\workspace\maven-test>?
创建结束,会生成如下的文件和目录结构:?



3、pom.xml?

在Maven中,pom.xml文件是项目配置的核心,它包含构建项目所需的主要信息。在上面的示例中,自动生成了pom.xml文件,其中的标签“packaging”为“war”—注意这里不是“jar”。当使用Maven构建项目时,该项目将自动打成war包用来部署。?

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.xuejava</groupId>?
? <artifactId>com.xuejavaweb</artifactId>?
? <packaging>war</packaging>?
? <version>1.0</version>?
? <name>com.xuejavaweb 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>com.xuejavaweb</finalName>?
? </build>?
</project>?
在Maven,完成所有这一切,只需要一个命令,就可以创建标准目录结构,马上开始开发工作?。

转自:http://www.k6567.com

http://www.d9732.com

?

热点排行