您的位置:首页 > 其它

Maven学习记录(一)--IDEA下环境配置

2017-02-01 10:15 555 查看

一.什么是Maven?

Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。

二.Maven能帮助开发者做什么?

构建

文档生成

报告

依赖

SCMs

发布

分发

邮件列表

总的来说,Maven 简化了工程的构建过程,并对其标准化。它无缝衔接了编译、发布、文档生成、团队合作和其他任务。Maven 提高了重用性,负责了大部分构建相关的任务。

三.Maven的setting.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"> 
<!-- 本地仓库的位置 -->
<localRepository>D:/develop/maven/my_local_repository</localRepository>
<!-- 表示是否使用交互模式,默认是true;如果设为false,那么当Maven需要用户进行输入的时候,它会使用一个默认值。 -->
<interactiveMode>true</interactiveMode>
<!-- 表示是否离线,默认为false,这个属性表示在Maven进行项目编译和部署等操作时是否允许Maven进行联网来下载所需要的信息。 -->
<offline>false</offline>
<!-- 在pluginGroups元素下面可以定义一系列的pluginGroup元素。表示当通过plugin的前缀来解析plugin的时候到哪里寻找。pluginGroup元素指定的是plugin的groupId。默认情况下,Maven会自动把org.apache.maven.plugins和org.codehaus.mojo添加到pluginGroups下。 -->
<pluginGroups>
</pluginGroups>
<!-- 其下面可以定义一系列的proxy子元素,表示Maven在进行联网时需要使用到的代理。当设置了多个代理的时候第一个标记active为true的代理将会被使用。下面是一个使用代理的例子: -->
<!--
<proxies>
<proxy>
<id>xxx</id>
<active>true</active>
<protocol>http</protocol>
<username>用户名</username>
<password>密码</password>
<host>代理服务器地址</host>
<port>代理服务器的端口</port>
<nonProxyHosts>不使用代理的主机</nonProxyHosts>
</proxy>
</proxies>
-->

<proxies>
</proxies>
<!-- 其下面可以定义一系列的server子元素,表示当需要连接到一个远程服务器的时候需要使用到的验证方式。这主要有username/password和privateKey/passphrase这两种方式。以下是一个使用servers的示例: -->
<!--
<servers>
<server>
<id>id</id>
<username>用户名</username>
<password>密码</password>
</server>
</servers>
-->
<servers>
</servers>
<!-- 用于定义一系列的远程仓库的镜像。我们可以在pom中定义一个下载工件的时候所使用的远程仓库。但是有时候这个远程仓库会比较忙,所以这个时候人们就想着给它创建镜像以缓解远程仓库的压力,也就是说会把对远程仓库的请求转换到对其镜像地址的请求。每个远程仓库都会有一个id,这样我们就可以创建自己的mirror来关联到该仓库,那么以后需要从远程仓库下载工件的时候Maven就可以从我们定义好的mirror站点来下载,这可以很好的缓解我们远程仓库的压力。在我们定义的mirror中每个远程仓库都只能有一个mirror与它关联,也就是说你不能同时配置多个mirror的mirrorOf指向同一个repositoryId。 -->
<mirrors>
<mirror>
<id>UK</id>
<mirrorOf>central</mirrorOf>
<url>http://uk.maven.org/maven2</url>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
<mirror>
<id>osc</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>
</mirrors>
<!-- 用于指定一系列的profile。profile元素由activation、repositories、pluginRepositories和properties四个元素组成。当一个profile在settings.xml中是处于活动状态并且在pom.xml中定义了一个相同id的profile时,settings.xml中的profile会覆盖pom.xml中的profile。 -->
<profiles>
<profile>
<id>osc</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</repository>
<repository>
<id>osc_thirdparty</id>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>net-cn</id>
<repositories>
<repository>
<id>net-cn</id>
<url>http://maven.net.cn/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>net-cn</id>
<url>http://maven.net.cn/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

</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
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
106
107
108
109
110
111


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
106
107
108
109
110
111
[/code]

四.IDEA怎么创建Maven项目(以web项目为例)

IDEA集成了很多模板,直接按照项目引导来创建就可以了



接下来给工程组和工程起名



接下来配置maven



接下来按照Maven标准结构起名字,并把Java设置位编译目录,把test下的java设为测试目录



目前项目结构



五.Maven的pom.xml文件

POM 代表工程对象模型。它是使用Maven工作时的基本组建,是一个xml文件。它被放在工程根目录下,文件命名为 pom.xml。POM 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程。POM 也包含了目标和插件。当执行一个任务或者目标时,Maven 会查找当前目录下的 POM,从其中读取所需

要的配置信息,然后执行目标

其中 groupId:artifactId:packaging:version被称为maven的坐标,唯一确定一个maven项目

<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"> <!--pom模型,固定值不用改变-->
<modelVersion>4.0.0</modelVersion>
<!--工程组名字-->
<groupId>com.mrdear</groupId>
<!--工程名字-->
<artifactId>mvndemo</artifactId>
<!--打包成为的结构,WEB对应着war包-->
<packaging>war</packaging>
<!--项目版本号-->
<version>1.0-SNAPSHOT</version>
<!--具体的依赖-->
<dependencies>
<!--配置了junit依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<!--junit依赖版本号,一般为4.10-->
<version>4.10</version>
<!--test标示只在测试时候用-->
<scope>test</scope>
</dependency>
</dependencies>
<!--最后打包项目的名称-->
<build>
<finalName>mvndemo</finalName>
</build>
</project>
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


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
[/code]

到此一个Maven的简单模块就完成了

(function () {('pre.prettyprint code').each(function () {
var lines = (this).text().split(′\n′).length;varnumbering = $('').addClass('pre-numbering').hide();
(this).addClass(′has−numbering′).parent().append(numbering);
for (i = 1; i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: