(十四)Maven聚合与持续

By admin in 投资 on 2018年10月21日

图片 1

1.Maven聚合

发生于成品上线不久即便来参展的兼职创业者,有立足中文市场而宣传材料都用英文就的团,有盖满整个客厅试图了解海外营销方法的家门人士。
这倒表示的国际性机会还和它背后的华市面同样诱人。

咱们在平常之开销中,项目屡次会给分割为一些独模块,比如common公共模块、system系统模块、log日志模块、reports统计模块、monitor监控模块等等。这时我们终将会现出这样一个待,我们用同不行构件多个模块,而不用每个模块都失去mvn
clean install一蹩脚,Maven聚合就是之所以来贯彻此需求的。

*
*

咱俩需要构建另外一个模块,假设是UidpWeb,然后经过该模块来构件整个项目的有模块,POM结构如下:

“…他的主题是,出海之路”

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 3   <modelVersion>4.0.0</modelVersion>
 4 
 5   <groupId>com.uidp</groupId>
 6   <artifactId>UidpWeb</artifactId>
 7   <packaging>pom</packaging>
 8   <version>0.0.1-SNAPSHOT</version>
 9   <name>UidpWeb</name>
10   <url>http://maven.apache.org</url>
11 
12     <modules>
13     
14         <!-- parent pom -->
15         <module>parent</module>
16         
17         <!-- 公共资源文件,第三方js库,图片等媒体资源 -->
18         <module>ThirdParty</module>
19         
20         <!-- 公共依赖,工具包 -->
21         <module>common</module>
22 
23         <!-- 日志模块 -->
24         <module>log/pom-pack.xml</module>
25         
26         <!-- 第三方客户定制服务模块 -->
27         <module>biz/pom-pack.xml</module>
28             
29         <!-- 客户管理 -->
30         <module>customer/pom-pack.xml</module>
31         
32         <!-- 策略模块-->
33         <module>strategy/pom-pack.xml</module>
34         
35         <!-- 统计报表 -->
36         <module>reports/pom-pack.xml</module>
37         
38         <!-- 监控统计 -->
39         <module>monitor/pom-pack.xml</module>
40         
41         <!-- 系统管理模块 -->
42         <module>sysmgr/pom-pack.xml</module>
43         
44         <!-- 统一打war包 -->
45         <module>/pom-app.xml</module>
46 
47     </modules>
48 
49 </project>

当台上之主持人说马上句话的当儿,这个楼梯后面的荒僻会场正处在相同种植座无虚席的状态。几单观众站于单,手里拿在入场时取的素材。在直达亦然摆时,他们受到即使有人一手抓在这么平等将材料,一手用手机拍下格外屏幕上的图片。

注释:

这就是说是一律庙有关Google开发者如何获取和分析用户的演说,如果就此贴合国情的等同句话表达,算是非常有干货。

<packaging>pom</packaging>:于聚合模块UidpWeb来说,packaging的类必须也pom,否则无法构建。

——数据对——

<name>UidpWeb</name>:供一个又易看的名称,没什么其他太怪作用。

跟分布会场的新奇点子——比如就以是讲厅不远处的电动车——比起来,这仿佛基于数的营销点似乎以概念上就低了不少。但即使被欢迎程度及看,它可能是那些故意面向国际的故园创业者真正用之。

<modules>……</modules>:当下是贯彻集的竹签,其下可含蓄多单module元素。

来自香港的PrimeMoment(简忆照片)集团盖会众口一辞这或多或少。

<module>…</module>:于是来指定实现集的模块或者实现集的POM。

是四总人口团伙做的凡一个肖像管理下。
最老特点应该是力所能及就此竹签创建并管制相册,相册同时可设定也多口同台编写。
除此之外还有像管理类常见的因地理或时刻相当进行自动分类的效力。

为了好用户构建项目,通常以聚合模块放在项目目录的卓绝顶层,其他模块则当集模块的子目录存在,这时聚合的时节便可要是本人如此指定路线:

暨该地的森工具型应用创业者一样,他们以通告时还要出了英文,繁体中文,和简体中文版本。

<module>parent</module>

<module>log/pom-pack.xml</module>

图片 2

随即即代表聚合模块下面的parent目录,聚合模块下面的log目录下的pom-pack.xml。

连接下去就是有些不平等的某些,他们发现自华陆上地域的使用者多,据说,是充分显眼的大都过任何两个版。

会师模块下的情才需要POM文件,它不像任何模块那样有src/main/java、src/test/java等目录。他只是用来支援聚合其他模块构建,他本人并无见面来了多之原形内容。

接下来就是浸淫于网络创业故事之总人口该都非常熟悉的转化,创始团队瞩目到了这种突出的使用者比例,并操纵为是更改政策。在产品上线后几到,他们出现在了TechCrunch上海之动及。

关于目录结构使留意的是,聚合模块既可作为任何模块的父目录,也得同另模块处于平行的目录,如图:

惨遭英两本宣传资料(这点以及场内大多数创业企业同),国籍不同的感谢兴趣观众。除了朝华市场重新进一步外,这里是会无限抢查他们之活对两样地段使用者的引力的地方。
据说,观众反响产生或引致他们用重点移到之动用上。

图片 3

——快速曝光——

要使用平行目录,聚合模块的POM要召开相应的改,以对是的模块目录:

PrimeMoment团执类似态度的丁不少,其中一些来自和他们好像的地方,比如说台湾之FIISER(飞搜)

<module>../parent</module>

<module>../log/pom-pack.xml</module>

FIISER的鼓吹要基本上就是当下片年的网流行词之一——应用内搜索(In-App
Search)。他们想使变为活动采用的Google,使用者不仅可由此FIISER抓取的数据找到以并见到她们的切切实实资料(区别为用企业里开发者自己付出的资料),还能够当结果里一直试用大约五分钟后更决定是否如下载。

末段运行mvn clean
install命令,Maven会分析聚合模块的POM、分析如果构建的模块、并盘算起一个反应堆构建顺序,然后根据此顺序依次构建各个模块,这样就是得以一次性构建具有聚合的模块。

图片 4

 

斯建伊始便报名了大气专利的团队明显不打算只于国语市场举行一个工具。
在台湾拿到首投资后,他们打算以如此的国际性活动达到找到更多的钱,以及更多之注意力。

2.Maven继承

据称这团伙是高生电机出身,据说八独人口里七独是工程师,技术稳步。据说他们都研究了各国使用者行为之不比,比如美国手机用户对使用下载比较审慎,而中国用户——尤其是苹果用户——对下载更开等,但没人工去对不同市场做具体调整。

一旦多独模块出现雷同之赖包,这样在pom.xml文件的内容出现了冗余、重复的情节,解决此问题莫过于以Maven的后续机制即可,就比如Java的接轨一样,父类就如一个模板,子类继承自父类,那么小通用的方法、变量都不要在子类中再度重声明了。Maven的延续机制仿佛,在一个父级别的Maven的pom文件中定义了连带的常量、依赖、插件等等配置后,实际项目模块可连续这个大项目
的pom文件,重复的宗不必显示的又声称一布满了,相当给父Maven项目就是个模板,等正在其他子模块去继续。不过父Maven项目要高度抽象,高度提取公共的片(交集),做到一致处声明,多地处采取。

那么这样的上,应该是极抢的为生一致步变成可能的点子。

和聚集一样我们用构建另外一个模块,假设是parent,在联谊模块UidpWeb下面创建parent模块,然后经过该模块来作持有模块的父POM,POM结构如下:

——深扎还是远航——

  1 <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">
  2     <modelVersion>4.0.0</modelVersion>
  3 
  4     <groupId>com.uidp</groupId>
  5     <artifactId>UidpParent</artifactId>
  6     <version>0.0.1-SNAPSHOT</version>
  7     <packaging>pom</packaging>
  8 
  9     <name>UidpParent</name>
 10     <url>http://maven.apache.org</url>
 11 
 12     <properties>
 13         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 14 
 15         <repository-url>http://192.168.0.70:8081/content/groups/public/</repository-url>
 16 
 17         <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
 18         <maven-war-plugin.version>2.4</maven-war-plugin.version>
 19         <maven-javadoc-plugin.version>2.9.1</maven-javadoc-plugin.version>
 20         <maven-release-plugin.version>2.4.1</maven-release-plugin.version>
 21         <maven-deploy-plugin.version>2.7</maven-deploy-plugin.version>
 22 
 23 
 24 
 25         <junit.version>4.11</junit.version>
 26         <oracle.version>10.2.0.4</oracle.version>
 27         <springframework.version>3.2.8.RELEASE</springframework.version>
 28         <mybatis.version>3.2.2</mybatis.version>
 29         <mybatis-spring.version>1.2.0</mybatis-spring.version>
 30         <mysql-driver.version>5.1.25</mysql-driver.version>
 31         <aspectjweaver.version>1.7.3</aspectjweaver.version>
 32 
 33         <commons-dbcp.version>1.4</commons-dbcp.version>
 34         <commons-pool.version>1.5.5</commons-pool.version>
 35         <commons-fileupload.version>1.2.2</commons-fileupload.version>
 36 
 37         <log4j.version>1.2.17</log4j.version>
 38         <slf4j-api.version>1.7.5</slf4j-api.version>
 39         <slf4j-log4j12.version>1.7.5</slf4j-log4j12.version>
 40 
 41         <freemarker.version>2.3.19</freemarker.version>
 42 
 43         <jackson-core.version>2.5.0</jackson-core.version>
 44         <jackson-mapper-asl.version>1.9.7</jackson-mapper-asl.version>
 45 
 46         <javax.servlet-api.version>3.0.1</javax.servlet-api.version>
 47         <jsp-api.version>2.2</jsp-api.version>
 48         <kryo.version>1.04</kryo.version>
 49         <snakeyaml.version>1.8</snakeyaml.version>
 50         <jedis.version>2.0.0</jedis.version>
 51         <commons-lang.version>2.6</commons-lang.version>
 52 
 53 
 54         <mockito-core.version>1.8.5</mockito-core.version>
 55         <powermock-core.version>1.4.9</powermock-core.version>
 56         <powermock-api-mockito.version>1.4.9</powermock-api-mockito.version>
 57         <powermock-module-junit4.version>1.4.9</powermock-module-junit4.version>
 58 
 59 
 60     </properties>
 61 
 62     <dependencyManagement>
 63         <dependencies>
 64 
 65             <dependency>
 66                 <groupId>junit</groupId>
 67                 <artifactId>junit</artifactId>
 68                 <version>${junit.version}</version>
 69                 <scope>test</scope>
 70             </dependency>
 71 
 72             <!-- spring jar begin -->
 73             <dependency>
 74                 <groupId>org.springframework</groupId>
 75                 <artifactId>spring-web</artifactId>
 76                 <version>${springframework.version}</version>
 77             </dependency>
 78 
 79             <dependency>
 80                 <groupId>org.springframework</groupId>
 81                 <artifactId>spring-webmvc</artifactId>
 82                 <version>${springframework.version}</version>
 83             </dependency>
 84 
 85             <dependency>
 86                 <groupId>org.springframework</groupId>
 87                 <artifactId>spring-beans</artifactId>
 88                 <version>${springframework.version}</version>
 89             </dependency>
 90 
 91             <dependency>
 92                 <groupId>org.springframework</groupId>
 93                 <artifactId>spring-context</artifactId>
 94                 <version>${springframework.version}</version>
 95             </dependency>
 96 
 97             <dependency>
 98                 <groupId>org.springframework</groupId>
 99                 <artifactId>spring-context-support</artifactId>
100                 <version>${springframework.version}</version>
101             </dependency>
102 
103             <dependency>
104                 <groupId>org.springframework</groupId>
105                 <artifactId>spring-core</artifactId>
106                 <version>${springframework.version}</version>
107             </dependency>
108 
109             <dependency>
110                 <groupId>org.springframework</groupId>
111                 <artifactId>spring-jdbc</artifactId>
112                 <version>${springframework.version}</version>
113             </dependency>
114 
115             <dependency>
116                 <groupId>org.springframework</groupId>
117                 <artifactId>spring-tx</artifactId>
118                 <version>${springframework.version}</version>
119             </dependency>
120 
121             <dependency>
122                 <groupId>org.springframework</groupId>
123                 <artifactId>spring-test</artifactId>
124                 <version>${springframework.version}</version>
125             </dependency>
126 
127             <dependency>
128                 <groupId>org.springframework</groupId>
129                 <artifactId>spring-expression</artifactId>
130                 <version>${springframework.version}</version>
131             </dependency>
132 
133             <dependency>
134                 <groupId>org.springframework</groupId>
135                 <artifactId>spring-aop</artifactId>
136                 <version>${springframework.version}</version>
137             </dependency>
138             <!-- spring jar end -->
139 
140             <dependency>
141                 <groupId>org.mybatis</groupId>
142                 <artifactId>mybatis</artifactId>
143                 <version>${mybatis.version}</version>
144             </dependency>
145 
146             <dependency>
147                 <groupId>org.mybatis</groupId>
148                 <artifactId>mybatis-spring</artifactId>
149                 <version>${mybatis-spring.version}</version>
150             </dependency>
151 
152             <dependency>
153                 <groupId>mysql</groupId>
154                 <artifactId>mysql-connector-java</artifactId>
155                 <version>${mysql-driver.version}</version>
156             </dependency>
157 
158             <dependency>
159                 <groupId>com.oracle</groupId>
160                 <artifactId>ojdbc14</artifactId>
161                 <version>${oracle.version}</version>
162             </dependency>
163 
164             <dependency>
165                 <groupId>org.aspectj</groupId>
166                 <artifactId>aspectjweaver</artifactId>
167                 <version>${aspectjweaver.version}</version>
168             </dependency>
169 
170 
171             <dependency>
172                 <groupId>commons-dbcp</groupId>
173                 <artifactId>commons-dbcp</artifactId>
174                 <version>${commons-dbcp.version}</version>
175             </dependency>
176             <dependency>
177                 <groupId>commons-pool</groupId>
178                 <artifactId>commons-pool</artifactId>
179                 <version>${commons-pool.version}</version>
180             </dependency>
181             <dependency>
182                 <groupId>commons-fileupload</groupId>
183                 <artifactId>commons-fileupload</artifactId>
184                 <version>${commons-fileupload.version}</version>
185             </dependency>
186 
187 
188             <!-- log jar -->
189             <dependency>
190                 <groupId>log4j</groupId>
191                 <artifactId>log4j</artifactId>
192                 <version>${log4j.version}</version>
193             </dependency>
194             <dependency>
195                 <groupId>org.slf4j</groupId>
196                 <artifactId>slf4j-api</artifactId>
197                 <version>${slf4j-api.version}</version>
198             </dependency>
199             <dependency>
200                 <groupId>org.slf4j</groupId>
201                 <artifactId>slf4j-log4j12</artifactId>
202                 <version>${slf4j-log4j12.version}</version>
203             </dependency>
204 
205             <!-- freemarker -->
206             <dependency>
207                 <groupId>org.freemarker</groupId>
208                 <artifactId>freemarker</artifactId>
209                 <version>${freemarker.version}</version>
210             </dependency>
211 
212 
213             <!-- jackson -->
214             <dependency>
215                 <groupId>com.fasterxml.jackson.core</groupId>
216                 <artifactId>jackson-core</artifactId>
217                 <version>${jackson-core.version}</version>
218             </dependency>
219             <dependency>
220                 <groupId>org.codehaus.jackson</groupId>
221                 <artifactId>jackson-mapper-asl</artifactId>
222                 <version>${jackson-mapper-asl.version}</version>
223             </dependency>
224 
225             <dependency>
226                 <groupId>javax.servlet</groupId>
227                 <artifactId>javax.servlet-api</artifactId>
228                 <version>${javax.servlet-api.version}</version>
229                 <scope>provided</scope>
230             </dependency>
231 
232             <dependency>
233                 <groupId>javax.servlet.jsp</groupId>
234                 <artifactId>jsp-api</artifactId>
235                 <version>${jsp-api.version}</version>
236                 <scope>provided</scope>
237             </dependency>
238 
239             <dependency>
240                 <groupId>com.googlecode</groupId>
241                 <artifactId>kryo</artifactId>
242                 <version>${kryo.version}</version>
243             </dependency>
244 
245             <dependency>
246                 <groupId>org.yaml</groupId>
247                 <artifactId>snakeyaml</artifactId>
248                 <version>${snakeyaml.version}</version>
249             </dependency>
250 
251             <dependency>
252                 <groupId>redis.clients</groupId>
253                 <artifactId>jedis</artifactId>
254                 <version>${jedis.version}</version>
255             </dependency>
256 
257             <dependency>
258                 <groupId>commons-lang</groupId>
259                 <artifactId>commons-lang</artifactId>
260                 <version>${commons-lang.version}</version>
261             </dependency>
262 
263 
264             <dependency>
265                 <groupId>org.mockito</groupId>
266                 <artifactId>mockito-core</artifactId>
267                 <version>${mockito-core.version}</version>
268                 <scope>test</scope>
269             </dependency>
270 
271             <dependency>
272                 <groupId>org.powermock</groupId>
273                 <artifactId>powermock-core</artifactId>
274                 <version>${powermock-core.version}</version>
275                 <scope>test</scope>
276             </dependency>
277 
278             <dependency>
279                 <groupId>org.powermock</groupId>
280                 <artifactId>powermock-api-mockito</artifactId>
281                 <version>${powermock-api-mockito.version}</version>
282                 <scope>test</scope>
283             </dependency>
284 
285             <dependency>
286                 <groupId>org.powermock</groupId>
287                 <artifactId>powermock-module-junit4</artifactId>
288                 <version>${powermock-module-junit4.version}</version>
289                 <scope>test</scope>
290             </dependency>
291 
292 
293         </dependencies>
294     </dependencyManagement>
295     
296     <distributionManagement>
297         <repository>
298             <id>releases</id>
299             <name>public</name>
300             <url>http://59.50.95.66:8081/nexus/content/repositories/releases</url>
301         </repository>
302         <snapshotRepository>
303             <id>snapshots</id>
304             <name>Snapshots</name>
305             <url>http://59.50.95.66:8081/nexus/content/repositories/snapshots</url>
306         </snapshotRepository>
307     </distributionManagement>
308     
309     
310     
311 <build>
312     <plugins>
313 
314         <plugin>
315             <groupId>org.apache.maven.plugins</groupId>
316             <artifactId>maven-compiler-plugin</artifactId>
317             <version>${maven-compiler-plugin.version}</version>
318             <configuration>
319                 <source>1.7</source> <!-- 源代码使用的开发版本 -->
320                 <target>1.7</target> <!-- 需要生成的目标class文件的编译版本 -->
321             </configuration>
322         </plugin>
323 
324         <plugin>
325             <groupId>org.apache.maven.plugins</groupId>
326             <artifactId>maven-javadoc-plugin</artifactId>
327             <version>${maven-javadoc-plugin.version}</version>
328         </plugin>
329 
330 
331         <plugin>
332             <groupId>org.apache.maven.plugins</groupId>
333             <artifactId>maven-release-plugin</artifactId>
334             <version>${maven-release-plugin.version}</version>
335         </plugin>
336 
337         <plugin>
338             <groupId>org.apache.maven.plugins</groupId>
339             <artifactId>maven-deploy-plugin</artifactId>
340             <version>${maven-deploy-plugin.version}</version>
341             <configuration>
342                 <updateReleaseInfo>true</updateReleaseInfo>
343             </configuration>
344         </plugin>
345 
346 
347 
348     </plugins>
349 </build>
350 
351 
352     <pluginRepositories>
353         <pluginRepository>
354             <id>nexus</id>
355             <name>nexus</name>
356             <url>http://192.168.0.70:8081/content/groups/public/</url>
357             <releases>
358                 <enabled>true</enabled>
359             </releases>
360             <snapshots>
361                 <enabled>true</enabled>
362             </snapshots>
363         </pluginRepository>
364     </pluginRepositories>
365 
366     
367 </project>

假如说香港与台湾创业者的同样挺劣势是遵照地市场最为小的话,他们的一样好优势为于这,大多数创业者都于同样始就搞好了针对性国际市场之备选。
相对而言,中国新大陆的本土创业者面对的挑虽烦得多。

亟需留意的是,他的packaging和集聚一样为pom,作为父模块的pom,其卷入类型必须也pom。父模块就是为扶持解除配置的更,因此他自家不分包除POM的门类文件,也就未待src/main/java之类的文件夹了。

图片 5

来了父模块,就得吃另外模块来持续它们,我们来拘禁个实在的例证:

另一方面,国际市场是独庞大的诱惑。

  1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3   <modelVersion>4.0.0</modelVersion>
  4 
  5     <parent>
  6         <groupId>com.uidp</groupId>
  7         <artifactId>UidpParent</artifactId>
  8         <version>0.0.1-SNAPSHOT</version>
  9     </parent>
 10 
 11   <groupId>com.uidp</groupId>
 12   <artifactId>log</artifactId>
 13   <packaging>war</packaging>
 14   <version>0.0.1-SNAPSHOT</version>
 15   <name>log</name>
 16   <url>http://maven.apache.org</url>
 17 
 18     <dependencies>
 19 
 20         <dependency>
 21             <artifactId>ThirdParty</artifactId>
 22             <version>0.0.1-SNAPSHOT</version>
 23             <groupId>${project.parent.groupId}</groupId>
 24             <type>war</type>
 25         </dependency>
 26 
 27         <dependency>
 28             <groupId>com.uidp</groupId>
 29             <artifactId>WebCommon</artifactId>
 30             <version>0.0.1-SNAPSHOT</version>
 31         </dependency>
 32 
 33         <dependency>
 34             <groupId>junit</groupId>
 35             <artifactId>junit</artifactId>
 36             <scope>test</scope>
 37         </dependency>
 38 
 39         <dependency>
 40             <groupId>org.aspectj</groupId>
 41             <artifactId>aspectjweaver</artifactId>
 42         </dependency>
 43 
 44         <!-- spring jar begin -->
 45         <dependency>
 46             <groupId>org.springframework</groupId>
 47             <artifactId>spring-web</artifactId>
 48         </dependency>
 49         <dependency>
 50             <groupId>org.springframework</groupId>
 51             <artifactId>spring-webmvc</artifactId>
 52         </dependency>
 53         <dependency>
 54             <groupId>org.springframework</groupId>
 55             <artifactId>spring-beans</artifactId>
 56         </dependency>
 57         <dependency>
 58             <groupId>org.springframework</groupId>
 59             <artifactId>spring-context</artifactId>
 60         </dependency>
 61         <dependency>
 62             <groupId>org.springframework</groupId>
 63             <artifactId>spring-context-support</artifactId>
 64         </dependency>
 65         <dependency>
 66             <groupId>org.springframework</groupId>
 67             <artifactId>spring-core</artifactId>
 68         </dependency>
 69         <dependency>
 70             <groupId>org.springframework</groupId>
 71             <artifactId>spring-jdbc</artifactId>
 72         </dependency>
 73         <dependency>
 74             <groupId>org.springframework</groupId>
 75             <artifactId>spring-tx</artifactId>
 76         </dependency>
 77         <dependency>
 78             <groupId>org.springframework</groupId>
 79             <artifactId>spring-test</artifactId>
 80         </dependency>
 81         <dependency>
 82             <groupId>org.springframework</groupId>
 83             <artifactId>spring-expression</artifactId>
 84         </dependency>
 85         <dependency>
 86             <groupId>org.springframework</groupId>
 87             <artifactId>spring-aop</artifactId>
 88         </dependency>
 89         <!-- spring jar end -->
 90         
 91         <!-- Quartz 框架 -->
 92         <dependency>
 93             <groupId>org.quartz-scheduler</groupId>
 94             <artifactId>quartz</artifactId>
 95             <version>1.8.6</version>
 96         </dependency>
 97 
 98         <!-- mybatis db -->
 99         <dependency>
100             <groupId>org.mybatis</groupId>
101             <artifactId>mybatis</artifactId>
102         </dependency>
103 
104         <dependency>
105             <groupId>org.mybatis</groupId>
106             <artifactId>mybatis-spring</artifactId>
107         </dependency>
108 
109         <!-- mysql驱动依赖包 -->
110         <dependency>
111             <groupId>mysql</groupId>
112             <artifactId>mysql-connector-java</artifactId>
113         </dependency>
114 
115         <!-- 数据库连接池 jar -->
116         <dependency>
117             <groupId>commons-dbcp</groupId>
118             <artifactId>commons-dbcp</artifactId>
119         </dependency>
120         <dependency>
121             <groupId>commons-pool</groupId>
122             <artifactId>commons-pool</artifactId>
123         </dependency>
124         <dependency>
125             <groupId>commons-fileupload</groupId>
126             <artifactId>commons-fileupload</artifactId>
127         </dependency>
128 
129         <!-- jackson -->
130         <dependency>
131             <groupId>com.fasterxml.jackson.core</groupId>
132             <artifactId>jackson-core</artifactId>
133         </dependency>
134         <dependency>
135             <groupId>org.codehaus.jackson</groupId>
136             <artifactId>jackson-mapper-asl</artifactId>
137         </dependency>
138 
139         <!-- log jar -->
140         <dependency>
141             <groupId>log4j</groupId>
142             <artifactId>log4j</artifactId>
143         </dependency>
144         <dependency>
145             <groupId>org.slf4j</groupId>
146             <artifactId>slf4j-api</artifactId>
147         </dependency>
148         <dependency>
149             <groupId>org.slf4j</groupId>
150             <artifactId>slf4j-log4j12</artifactId>
151         </dependency>
152 
153         <!-- freemarker -->
154         <dependency>
155             <groupId>org.freemarker</groupId>
156             <artifactId>freemarker</artifactId>
157         </dependency>
158 
159         <dependency>
160             <groupId>com.oracle</groupId>
161             <artifactId>ojdbc14</artifactId>
162         </dependency>
163 
164         <!--因为api是打jar包的,所以这里用compile,如果是正常情况打war包,用private-->
165         <dependency>
166             <groupId>javax.servlet</groupId>
167             <artifactId>javax.servlet-api</artifactId>
168             <scope>compile</scope>
169         </dependency>
170 
171         <dependency>
172             <groupId>javax.servlet.jsp</groupId>
173             <artifactId>jsp-api</artifactId>
174             <scope>compile</scope>
175         </dependency>
176 
177         <dependency>
178             <groupId>commons-lang</groupId>
179             <artifactId>commons-lang</artifactId>
180             <version>2.6</version>
181         </dependency>
182 
183     </dependencies>
184     <build>
185         <plugins>
186 
187             <plugin>
188                 <groupId>org.mortbay.jetty</groupId>
189                 <artifactId>jetty-maven-plugin</artifactId>
190                 <version>7.2.2.v20101205</version>
191                 <configuration>
192                     <stopKey>foo</stopKey>
193                     <stopPort>9999</stopPort>
194                     <webAppConfig>
195                         <contextPath>/</contextPath>
196                     </webAppConfig>
197                     <!-- 指定额外需要监控变化的文件或文件夹,主要用于热部署中的识别文件更新 -->
198                     <scanTargetPatterns>
199                         <scanTargetPattern>
200                             <directory>src</directory>
201                             <!-- <includes> <include>**/*.java</include> <include>**/*.properties</include>
202                                 </includes> -->
203                             <!-- <excludes> <exclude>**/*.xml</exclude> <exclude>**/myspecial.properties</exclude>
204                                 </excludes> -->
205                         </scanTargetPattern>
206                     </scanTargetPatterns>
207                     <scanIntervalSeconds>1</scanIntervalSeconds>
208                     <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory><!--
209                         指定web页面的文件夹 -->
210                 </configuration>
211             </plugin>
212 
213             <plugin>
214                 <groupId>org.apache.maven.plugins</groupId>
215                 <artifactId>maven-war-plugin</artifactId>
216                 <version>${maven-war-plugin.version}</version>
217                 <configuration>
218                     <failOnMissingWebXml>false</failOnMissingWebXml>
219                     <warName>${project.artifactId}</warName>
220                 </configuration>
221             </plugin>
222         </plugins>
223     </build>
224 </project>

包括Facebook和Google在内的大亨早已发现及了就点——或许正如他们发觉及中华习以为常使用者到底想要啊还早——并为拉拢这批野心勃勃的企业家提供资源,比如本文篇首提取过的分会场演说,以及附赠的轻重扎实的“成功宝典”
和图解版的说明。

上述POM中应用parent元素声明父模块,parent下的子元素groupId、artifactId和version指定了父模块的坐标,这三个元素是必的。relativePath元素是可选的,我这里用之默认值所以并无安排,relativePath元素的默认值为../pom.xml,也就是说,Maven默认父POM在齐同交汇目录下。当型构建时,Maven会首先根据relativePath检查父POM,如果找不至,再由本土仓库寻。所以像自己这边而地方仓库着呢尚未父POM的语句构建就见面败了,所以极好之做法是布局relativePath为../parent/pom.xml表示父POM的位置与于log/目录平行的parent/下。这样就算本地仓库没有父POM构建的时段也不见面报错了。

而包Innospace在内的里创业孵化器也以坐“国际”以发售点,吸引具有怀揣在进军海外的野心的创业人士。

 

单,巨大的当地市场也是只极端便利啊太放不生的资源。

大家有木有发现log的groupId和version元素是和父POM一样的,所以这边其实是足以略不要的,但是要log有自己专门的groupId和version,那么即使显的安排一个纵吓了。对于artifactId元素来说,子模块应该显式的宣示,避免造成坐标冲突与模糊。

仲天的会场外,大概在深Google分会场所在位置的旁一样匹,出现了对微信营销之宣扬。
虽然此走之肤色各异的人口犹懂Wechat是什么,甚至都出和好之微信号,但约只有真正在在此地的人才知道要动好就无异社到媒体所待之技术,那约非会见比使用好Facebook或者Google简单多少。

 

唐人来句话让二鸟在林不如一鸟在亲手,当然也生任何一样句子话被志在四方。这里发生诸多人口挑挑捡捡,最后还是找了一个地方扎根运作,有人齐头并进,最后两头为难,也出再度多口管立足于哪,都来征服远方大陆的愿望。

对此因之连续,我们得以把依放入<dependencyManagement>元素中,这样的仗就改成了可是卜的,我们如果以项目被继续我们所欲的凭即可,比如:

管什么,他们还迈出了出海的路的第一步。

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <scope>test</scope>
</dependency>

-----

咱无需开展版本的声明,这样就算得因自己之消引入需要之保证,而休见面继续全部之担保。

按部就班系列完

对此每个类别还亟待继续的负则免在<dependencyManagement>元素中,不过个人认为没关系必要,都在<dependencyManagement>元素中,需要的时刻引入一下即使吓了。

花絮:
PrimeMoment的特征被自己想起一个先看到底台湾照片管理下,大概是坐地理为核心整理与共享旅游图片,并可吃情人照路线欣赏的。
但真的忘了是啊。

 

花絮2 :
应用内搜索的定义其实太盛,完全淹没于了会场一律切片“大数量”“云协作”的乐章里。所以我路过FIISER展位很多次,直到第二上认真看了才意识她们确实是做是的。

插件的继承和依靠之累是类似之,这里而大多的证明,插件也起一个<pluginManagement></pluginManagement>元素,放在脚的插件也意味着也而卜的。

花絮3 :
题图是当分会场内拍的,用了边缘虚化和色彩度调整突出了中央正对前方的镜头。和《入华记》中那条排队见中国投资人的不等国籍创业者对比,这里是瞄远方机会的本土创业者。

 

链接们:正文在 钛点
微信上链接 
 
  本文在钛点网站上链接

以采取父POM的当儿也只要当汇模块中加入:

对,感谢各位压力,网站正在偷补档中。

<module>parent</module>

应该是放在最前头,大家可看看上面的聚集POM。

 

3.只是继续的POM元素

groupId和version是好于持续的,那么还有什么样POM元素得以给连续呢?以下是一个完完全全的列表,并顺便了简易的印证:

  • groupId :项目组 ID ,项目坐标的基本因素;  
  • version :项目版本,项目坐标的为主元素;  
  • description :项目的叙述信息;  
  • organization :项目之集体消息;  
  • inceptionYear :项目之首创年份;  
  • url :项目的 url 地址;  
  • develoers :项目的开发者信息;  
  • contributors :项目之贡献者信息;  
  • distributionManagerment :项目之部署信息;  
  • issueManagement :缺陷跟踪系统信息;  
  • ciManagement :项目的连承信息;  
  • scm :项目的版本控制信息;  
  • mailingListserv :项目之邮件列表信息;  
  • properties :自定义之 Maven 属性;  
  • dependencies :项目的依靠配置;  
  • dependencyManagement :醒目的依管理配置;  
  • repositories :项目之库配置;  
  • build
    :包括项目之源码目录配置、输出目录配置、插件配置、插件管理配置等;  
  • reporting :包括项目的报告输出目录配置、报告插件配置当。

 

4.汇与持续的关联

区别 :

1.对于聚合模块来说,它知道有怎样吃集的模块,但那些受凑的模块不亮堂这个集模块的在。

2.对继续关系之父POM来说,它不理解有哪些子模块继承给它们,但那些子模块都不能不了解好的父POM是什么。

共同点 :

1.集POM与后续关系遇的父POM的packaging都是pom。

2.聚众模块和持续关系遭遇之父模块除了POM之外还没实际的情。

图示:

图片 6

 

5.有关版本的概括说明

对此用了svn或者cvs的情人等,都见面理解,每次修改都见面付出一个本及服务器上,对于咱们平常所搭建之种,大家莫不没有留神到本是概念。其实版本对于叠加式开发的型是独好要紧之概念,通过地方的依赖性,我们即便好了解地察看一个version,这个就算是引入依赖包的本。

这就是说版本一共可以分成几单层次,一般的话,版本可以分为:总版本号.分支版本号.小版本号-里程碑版本。

总版本号:一般代表框架的改动。

分支版本号:一般代表增加了有的功效。

小版本号:在旁版本上面进行bug的修复。

里程碑:SNAPSHOT–>alpha–>beta–>release–>GA

 

结语:关于继续所蕴涵的情节比较多,不是三言两语就会描述的充分明白的,所以还强烈建议大家好买入许晓斌先生的《Maven实战》,这本书会介绍的可比详细,个人认为无比好的投资尽管是斥资投机之学,所以若你是Maven的初家,应该同自家一样打当下仍书籍,如果是大神,那么也便不曾必要看就首博文了,营养价值并无强。

 

不过爱博主:AlanLee

博客地址:http://www.cnblogs.com/AlanLee

本文来源博客园,欢迎大家在博客园。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2018 mobile.365-838.com 版权所有