概述
一、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:
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时可参考:
<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如下:
<?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>
在其中加入下载配置:
<?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:
<?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首先从本地仓库获取,如果没有,就从中央仓库获取,如果中央仓库也没有,你还配置了远程仓库,就从远程仓库获取,如果获取不到,就给你个错误自己体会。
七、远程仓库举例:
<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中加入:
<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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复