一、IDEA提供Maven插件,可以支持Maven,当然你也可以下载另一个Maven(http://maven.apache.org/download.cgi),新建系统变量 MAVEN_HOME对应Maven路径,编辑系统变量 Path,添加变量值:;%MAVEN_HOME%bin,在IDEA的File-Settings-Maven-Maven home directory中选择这个Maven。
File-New-Project,左侧点击Mavn,右侧勾选Create from archetype,可以选择提供的原型。
如果右侧原型加载慢,Ctrl+Alt+S打开Settings,搜索Maven,点击Maven下的Importing,将JDK for importer:的Use Internal JRE改成Use Java Home或其它。如果想生成的原型有对应的目录结构,在新建过程中Properties那一步,点击+,加入Name:archetypeCatalog,Value:internal。比如选择原型:maven-archetype-j2ee-simple (一个简单的J2EE的Java应用程序),会产生目录结构:ear、ejbs、primary-source、projects、servlets。如果此时对文件资源类型不识别,Maven视图中点击刷新按钮即可。
原型详解如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
801: 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 and 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 原型)
二、填写GroupID、ArtifactID时可参考:
1
2
3
4
5
6
7
8
9
10
11
12
13<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> <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group --> <groupId>com.companyname.project-group</groupId> <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 --> <artifactId>project</artifactId> <!-- 版本号 --> <version>1.0</version> </project>
GroupID、ArtifactID规范为小写,GroupID可用.分隔,ArtifactID有多个单词构成,可以用-分隔。工程名会默认为ArtifactID将-去掉的结果。
Version默认为1.0-SNAPSHOT,snapshot表示快照版本,可发布,还在改进。
建立后工程下有pom.xml,pom即项目对象模型(缩写:POM),Maven基于项目对象模型的概念。
三、点击View-Tool Windows-Maven,右侧显示Maven视图。
四、如果Plugins里有红线,即插件下载失败,在本地仓库里将有红线的插件对应的文件夹删除,点击Maven视图里左上方的刷新,将重新下载插件。Ctrl+Alt+S打开Settings,搜索并点击Maven,Local repository即Maven本地仓库,勾选Override,可以修改本地仓库的位置。
如果插件下载速度慢,可以修改下载的服务器,即修改Maven的settings.xml,修改后再次点击刷新。Ctrl+Alt+S打开Settings,搜索Maven,勾选override,可修改settings.xml位置。如果位置上没有settings.xml,工程右键Maven-Create 'settings.xml'。如果已经有了,工程右键Maven-Open 'settings.xml'。
创建的settings.xml如下:
1
2
3
4
5<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> </settings>
在其中加入下载配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>uk</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url> </mirror> <mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>nexus</id> <name>internal nexus repository</name> <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>--> <url>http://repo.maven.apache.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>
五、原型maven-archetype-j2ee-simple (一个简单的J2EE的Java应用程序,包含自动创建的工程结构)对应的pom.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105<?xml version="1.0" encoding="UTF-8"?> <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.haoran.banks</groupId> <artifactId>world-bank</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>world-bank</name> <modules> <module>projects</module> <module>primary-source</module> <module>servlets</module> <module>ejbs</module> <module>ear</module> </modules> <distributionManagement> <site> <id>site</id> <name>project website</name> <url>scp://local.company.com/websites/project.company.com/</url> </site> </distributionManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.haoran.banks</groupId> <artifactId>logging</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.haoran.banks</groupId> <artifactId>primary-source</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.haoran.banks</groupId> <artifactId>servlet</artifactId> <version>1.0-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>com.haoran.banks</groupId> <artifactId>ejbs</artifactId> <version>1.0-SNAPSHOT</version> <type>ejb</type> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-ear-plugin</artifactId> <version>3.0.1</version> </plugin> <plugin> <artifactId>maven-ejb-plugin</artifactId> <version>3.0.1</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build> </project>
六、关于仓库:
Maven有本地仓库,即File-Settings-Maven-local repository。Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。Maven还有中央仓库(http://search.maven.org/#browse)(妈妈再也不用担心我下载不到第三方依赖了),中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。自己还可以架设远程仓库。对Project或Moudle加入依赖,即构件或者叫工件,Maven首先从本地仓库获取,如果没有,就从中央仓库获取,如果中央仓库也没有,你还配置了远程仓库,就从远程仓库获取,如果获取不到,就给你个错误自己体会。
七、远程仓库举例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14<repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
八、外部依赖导入:
如在pom.xml中加入:
1
2
3
4
5
6
7
8<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> <scope>compile</scope> </dependency> </dependencies>
IDEA提示,Import Changes和Enable Auto Import,选择后者,以后直接应用改变,不再提示。然后在工程目录结构中External Libraries中会新增:Maven: log4j:log4j:1.2.12。你可以加入更多外部依赖。
九、下载源码和文档
1、File => Setting => Build, Execution, Deployment => Build Tools => Maven => Importing
然后勾选自动下载 Sources,Documentation即可,导入依赖时即可下载源码和文档,直观感受就是class文件里有注释了。
2、如果已经导入,点击class文件,联网情况下点击上方的提示Download Sources即可。
3、如果想整个工程中的依赖都下载源码和文档,在Maven视图中点击下载图标,点击Download Sources and Documentation即可。
最后
以上就是感动小霸王最近收集整理的关于IDEA中使用Maven的全部内容,更多相关IDEA中使用Maven内容请搜索靠谱客的其他文章。
发表评论 取消回复