maven,IDEA多模块项目,啊,快要疯了,好吧,又是一个笔记
好吧,根据记忆一步一步试吧,实在不行,继续折腾;我这里用的是mac版的IDEA,不过和windows版的弄法是一样的,只是有一些按键的位置不同而已(后来发现好像没有- -!)
先创建一个空项目先~!
1、打开IDEA,选择Create New Project;
2、选择左边的Empty Project;再选择右边的Empty Project;然后Next
3、Next后出现以下界面,写入项目名称,项目路径;然后点Finish;
4、点了Finish后,会出现下面的界面(我的是2016.3.5的IDEA,不知道其他版本的有没有这个界面,反正有没有也没有影响,随他去吧^_^);不管他,点OK也行,点Cancel也行(反正我是瞎点,两个都点过);
好!接下来开始项目搭建!!
创建父级项目:store-parent 后面的都继承这个项目
1、点击File--->New--->Module
2、在弹出的New Module窗口,选择如下图选项,然后Next
3、填写组织名GroupId,项目名称ArtifactId,然后Next;至于Version嘛,不要动它就好咯;呃...项目名称,在下面还有一步需要写一个名称,会自己把 ‘‘-’’给消掉,我也没深究,只是自己手动补上‘‘-’’这个东西,想加就加,不想加就不加,反正规范,我也不知道合不合适,随我自己喜欢而已
4、点了Next后,出现maven的相关页面了,一直说maven,maven的,刚开始我在这里乱来,害了好几条头发细胞;选好自己下载好的maven,我不知道用IDEA自带的maven行不行,反正我用是不行,M了个几的,弄了好久,最后还是自己下载,配置好之后才行;选好了,就Next吧
5、上面说到项目名称的时候,下面有一个地方会消掉‘‘-’’,就是这里了,点了Next后,出现下面的界面,store和project之间的 ‘‘-’’是我自己手动加上去的,那一竖,是我的光标,无视吧无视吧。看个人喜欢了,我强迫症,有病,放弃治疗了,没法子;选好自己项目的路径,Finish吧
Finish之后,等咯,等项目结构生成完毕吧(又想起了第一次建maven的时候被墙的傻逼等待- -);项目目录生成完毕后,改pom文件吧;parent是项目的父项目,管理jar包啊、版本啊,呃.. 聚合...聚合什么来着...唉哟,不管啦,反正要把打包方式改成pom;
pom文件的代码:
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 4.0.0
4 store.project
5 store-parent
6 1.0-SNAPSHOT
7 pom
8
9
10
11 4.12
12 4.1.3.RELEASE
13 3.2.8
14 1.2.2
15 1.2.15
16 5.1.32
17 1.6.4
18 2.4.2
19 1.0.9
20 4.3.5
21 1.2
22 2.5
23 2.0
24 2.5
25 3.3.2
26 1.3.2
27 3.3
28 3.4.2-fix
29 0.9.1
30 1.3.1
31 2.7.2
32 4.10.3
33 2.3.23
34 2.2.2
35
36
37
38
39
40 joda-time
41 joda-time
42 ${joda-time.version}
43
44
45
46 org.apache.commons
47 commons-lang3
48 ${commons-lang3.version}
49
50
51 org.apache.commons
52 commons-io
53 ${commons-io.version}
54
55
56 commons-net
57 commons-net
58 ${commons-net.version}
59
60
61
62 com.fasterxml.jackson.core
63 jackson-databind
64 ${jackson.version}
65
66
67
68 org.apache.httpcomponents
69 httpclient
70 ${httpclient.version}
71
72
73
74 junit
75 junit
76 ${junit.version}
77 test
78
79
80
81 org.slf4j
82 slf4j-log4j12
83 ${slf4j.version}
84
85
86
87 org.mybatis
88 mybatis
89 ${mybatis.version}
90
91
92 org.mybatis
93 mybatis-spring
94 ${mybatis.spring.version}
95
96
97 com.github.miemiedev
98 mybatis-paginator
99 ${mybatis.paginator.version}
100
101
102 com.github.pagehelper
103 pagehelper
104 ${pagehelper.version}
105
106
107
108 mysql
109 mysql-connector-java
110 ${mysql.version}
111
112
113
114 com.alibaba
115 druid
116 ${druid.version}
117
118
119
120 org.springframework
121 spring-context
122 ${spring.version}
123
124
125 org.springframework
126 spring-beans
127 ${spring.version}
128
129
130 org.springframework
131 spring-webmvc
132 ${spring.version}
133
134
135 org.springframework
136 spring-jdbc
137 ${spring.version}
138
139
140 org.springframework
141 spring-aspects
142 ${spring.version}
143
144
145 org.springframework
146 spring-context-support
147 ${spring.version}
148
149
150
151 jstl
152 jstl
153 ${jstl.version}
154
155
156 javax.servlet
157 servlet-api
158 ${servlet-api.version}
159 provided
160
161
162 javax.servlet
163 jsp-api
164 ${jsp-api.version}
165 provided
166
167
168
169 commons-fileupload
170 commons-fileupload
171 ${commons-fileupload.version}
172
195
196
197
198
199 ${project.artifactId}
200
201
202
203 org.apache.maven.plugins
204 maven-resources-plugin
205 2.7
206
207 UTF-8
208
209
210
211
212 org.apache.maven.plugins
213 maven-compiler-plugin
214 3.2
215
216 1.7
217 1.7
218 UTF-8
219
220
221
222
223
224
225
226 org.apache.tomcat.maven
227 tomcat7-maven-plugin
228 2.2
229
230
231
232
233
父级项目,嗯,建完了,对建完了(反正是笔记@_@)
好咯,接下来是公共项目咯 起名:store-common; 继承父项目store-parent;
1、和建parent项目一样,File--->New--->Module
2、选完之后,这里可就不同了,要看清楚看清楚哦,注意看3的那个位置哈;详情如看下图;OK,Next!
3、Next之后,要选好继承关系,Add as module to 这里得选择none;就是不将项目加入别的项目里面去,项目结构分层清淅嘛,必须的,然后Next吧!
4、选择maven的本地仓库,这个老生长谈啦,Next
5、项目路径,跟parent一样,只是后面的名字是common,哦,强迫症,手动加‘‘-’’ OK Finish!
6、Finish后,等待项目目录生成完毕吧,不过,这里有一个情况,就是在common的java目录下,有一个MyPortlet类,在项目建好之后呢,Build或者在Maven Project里面install的时候,会报错,我这里是少包了,但是呢,那个类,项目不需要用,我很粗暴的,删!包括store.project包都一起,删!
7、好啦,在这里,继续改pom文件,common呢,跟parent有所不同,它的打包形式是jar;所以,改!
pom代码如下:
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
4 store-parent
5 store.project
6 1.0-SNAPSHOT
7 ../store-parent/pom.xml
8
9 4.0.0
10 store-common
11 jar
12
13
14 store-common
15 http://maven.apache.org
16
17
18
19
20
21 joda-time
22 joda-time
23
24
25
26 org.apache.commons
27 commons-lang3
28
29
30 org.apache.commons
31 commons-io
32
33
34 commons-net
35 commons-net
36
37
38
39 com.fasterxml.jackson.core
40 jackson-databind
41
42
43
44 org.apache.httpcomponents
45 httpclient
46
47
48
49 junit
50 junit
51
52
53
54 org.slf4j
55 slf4j-log4j12
56
57
58
OK!又一个项目建好了,我去,写这东西,原来这么辛苦,比玩代码还花脑浆糊- - !好吧,继续;
接下来:store-manager;和store-common的创建一样;不过,打包方式是和parent一样的,都是pom形式,来,走起
1、File--->New--->Module; 然后 Next!
2、继承parent,然后Add as module to 继续是none;Next!
3、选择Maven,都不用动咯,跟上面一样;Next!
4、选择路径,这里一样,强迫症,手动加上‘‘-’’,没有强迫症的,顺心意。哈哈;Finish!
5、老活了,等项目目录生成完毕!跟common一样,删MyPortlet
6、更改pom文件,把打包形式改成pom
pom代码:
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
4 store-parent
5 store.project
6 1.0-SNAPSHOT
7 ../store-parent/pom.xml
8
9 4.0.0
10 store-manager
11 pom
12
13 store-manager
14 http://maven.apache.org
15
16
17
18
19 store.project
20 store-common
21 1.0-SNAPSHOT
22
23
24
25
26 jstl
27 jstl
28
29
30 javax.servlet
31 servlet-api
32 provided
33
34
35 javax.servlet
36 jsp-api
37 provided
38
39
40
41 commons-fileupload
42 commons-fileupload
43
44
45
OK 又一个里程碑啊!抽根烟..哦...不,咬根牙签;继续!
接下来是manager里面的pojo了,一开始我在想pojo是什么鬼,实体类嘛,差点蠢哭!
来吧,折磨吧
起名:store-manager-pojo
1、这个时候的新建和上面的都不一样了,这个时候要在store-manager项目上右击鼠标--->New--->Module;
2、这个时候的选项,要注意一下了,好叻,看下图;然后,继续Next!
3、在这个地方呢,和前面有所不同,pojo是继承在manager的,同时呢,也是添加到manager项目下面去的,要注意了哈,仔细看好下图哦!哟西,Next!
4、选择maven路径,唉哟我去,又是重复的活,无语凝焉,目望显示器,Next!
5、又到了选路径的时候了,号外号外,划重点了,这里路径如果你写完Module name之后直接Finish,那么,你哭吧,反正我哭过。一定得在store-manger后面加上/,再加Model name,像下图一样,要不然,你哭吧,反正我看不到。呀哈!Finish吧!骚年?李白?什么鬼!完成!
6、简单的工作重复做,重复吧,少年,修改pom文件,将打包形式改成jar,不过,我的到这里,,自然就是jar的了,我当时好像import了什么,不是也没影响,一字记之曰,改嘛
pom代码:
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
4 store-manager
5 store.project
6 1.0-SNAPSHOT
7
8 4.0.0
9
10 store-manager-pojo
11 jar
12
13 store-manager-pojo
14 http://maven.apache.org
15
16
17 UTF-8
18
19
20
21
22 junit
23 junit
24 3.8.1
25 test
26
27
28
POJO完成了,那么DAO咯,来吧 :store-manager-dao
和pojo一样鬼样,在manager上右击--->New--->Module 。唉我去,又是重复的,放图,不放图,放图,好吧,放图(我要简化,我要偷懒),继续!
1、
2、
3、
4、
5、
6、pom代码:
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
4 store-manager
5 store.project
6 1.0-SNAPSHOT
7
8 4.0.0
9
10 store-manager-dao
11 jar
12
13 store-manager-dao
14 http://maven.apache.org
15
16
17 UTF-8
18
19
20
21
22
23 store.project
24 store-manager-pojo
25 1.0-SNAPSHOT
26
27
28
29 org.mybatis
30 mybatis
31
32
33 org.mybatis
34 mybatis-spring
35
36
37 com.github.miemiedev
38 mybatis-paginator
39
40
41 com.github.pagehelper
42 pagehelper
43
44
45
46 mysql
47 mysql-connector-java
48
49
50
51 com.alibaba
52 druid
53
54
55
继续:store-manager-service
1、
2、
3、
4、
5、路径的坑,得填
6、pom代码:
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
4 store-manager
5 store.project
6 1.0-SNAPSHOT
7
8 4.0.0
9
10 store-manager-service
11 jar
12
13
14 store-manager-service
15 http://maven.apache.org
16
17
18 UTF-8
19
20
21
22
23 store.project
24 store-manager-dao
25 1.0-SNAPSHOT
26
27
28 org.springframework
29 spring-context
30
31
32 org.springframework
33 spring-beans
34
35
36 org.springframework
37 spring-webmvc
38
39
40 org.springframework
41 spring-jdbc
42
43
44 org.springframework
45 spring-aspects
46
47
48 org.springframework
49 spring-context-support
50
51
52
现在,到了最后一个了,这一个,还真不能偷懒了,store-manager-web走起
store-manager-web
1、依然是在manager上右击--->New--->Module
2、哪,这个地方要注意了,在这里,选择的是archetype-webapp,跟上面的不一样,要看仔细哦!~
3、Next,没毛病
4、继续,还是没毛病
5、路径的坑,还是得坑,要不然,还真就有毛病了 0.0!
6、好吧,改pom吧,web项目以war形式打包
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
4 store-manager
5 store.project
6 1.0-SNAPSHOT
7
8 4.0.0
9 store-manager-web
10 war
11
12
13 store-manager-web Maven Webapp
14 http://maven.apache.org
15
16
17 junit
18 junit
19 3.8.1
20 test
21
22
23
24 store-manager-web
25
26
哈,终于到这了,好叻,要让项目跑起来,还得配Maven Tomcat Plugin;唉哟喂... 累呀,来吧
开始,哇哈哈!
1、点击我们平时做web的时候配Tomcat的地方;点击Edit Configurations;
2、点击选完之后,按着下图来,选择Maven
3、选完,接着OK以后,出现下图,写好名字,选好路径,写好命令;唉我去,感觉我好啰嗦- -!!;
4、写完,点击OK,好啦,你就会看到下面这个好看的东西了,然后点击红圈里的那个绿三角吧,运行项目
然后,然后,我去,common咋啦,好咯,想起来了,这货还没有打包;
5、打包store-common,选中Maven Projects,如下图找出common的install;双击它吧,用力点。噢~!
6、看到下面这个,就是成功了;还记得上面有说到删除 MyPortlet 类么。我就是没有删,结果报了半天错,泥煤的,我又是个小白,不停的导这个包那个包的,折腾了几次,粗暴的删掉。好吧,世界好了$_$
好,我们接着再来运行我们的宝贝项目
哎~我了个去,这个还得打包,好,打包parent! 跟打包common是一样的了,啊~~~就不重复了。这笔记写的,我应该也没那么笨,如果忘了再看,到这了,应该也会了- -!!
打包完之后,接着运行项目;然后,这是什么鬼0.0。实说,我真在这里懵逼了好久,看不懂,也不知道怎么查啊。最后,打了个电话;结果被那位小伙伴笑了半天,说我白学了,manager项目的pom文件里面配tomcat插件;好吧,我是白学了- -!!
在store-manger的pom文件里,嗯,想起来上面说的聚合什么什么的,聚合工程,对,聚合工程,呃...跑歪了!在store-manger的pom文件里,把tomcat配好;
1
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
4 store-parent
5 store.project
6 1.0-SNAPSHOT
7 ../store-parent/pom.xml
8
9 4.0.0
10 store-manager
11 pom
12
13 store-manager
14 http://maven.apache.org
15
16
17 store-manager-pojo
18 store-manager-dao
19 store-manager-service
20 store-manager-web
21
22
23
24
25
26 store.project
27 store-common
28 1.0-SNAPSHOT
29
30
31
32
33 jstl
34 jstl
35
36
37 javax.servlet
38 servlet-api
39 provided
40
41
42 javax.servlet
43 jsp-api
44 provided
45
46
47
48 commons-fileupload
49 commons-fileupload
50
51
52 53
54
55
56
57 org.apache.tomcat.maven
58 tomcat7-maven-plugin
59
60 8080
61 /
62
63
64
65
66
67
运行...运行...OK,没学跑先学的飞,到现在,项目,起来了。
然后,,见到了进新手村的第一个NPC
最后,项目搭建完的结构是下面这样子了
好啦,跑是跑通了,后续还有什么问题,慢慢再摸吧,这笔记写的又臭又长,估计就算我忘了,自己回头来看也会对着自己说一句,写的什么傻逼东西哦;不过没办法,水平有限,刚进入到java这个坑。
号外号外:只是我自己做为我自己的笔记记录;
申请申请:只是我自己做为我自己的笔记记录;
注释注释:只是我自己做为我自己的笔记记录; 重要的事说三遍!!!
有笔记就将就吧。睡觉睡觉。写这鬼东西,精神消耗的累成狗!,不,狗都比我幸福- -!