百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

maven-分布式项目之工程结构配置(maven项目的基本结构)

toyiye 2024-07-08 22:52 12 浏览 0 评论

maven的作用

1.管理jar包及依赖、工程之间的依赖

2.项目构建。

3.工程聚合、继承、依赖

Maven的工程类型

1.war包工程

2.Jar包工程

3.Pom工程

后台管理系统工程结构:

taotao-parent (pom)-- 管理依赖jar包的版本,全局,公司级别

|--taotao-common (jar)--- 通用组件、工具类

|--taotao-manage (pom)-- 后台系统

|--com.taotao.manage.web(war)

|--com.taotao.manage.service(jar)

|--com.taotao.manage.mapper(jar)

|--com.taotao.manage.pojo(jar)

1.创建taotao-parent父工程

1.new a maven project

2.Create a simple project

3.Packaging选择pom(聚合项目)

4.修改pom.xml

[html] view plain copy

  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/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.taotao</groupId>
  5. <artifactId>taotao-parent</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>pom</packaging>
  8. <!-- 集中定义依赖版本号 -->
  9. <properties>
  10. <junit.version>4.12</junit.version>
  11. <spring.version>4.1.3.RELEASE</spring.version>
  12. <mybatis.version>3.2.8</mybatis.version>
  13. <mybatis.spring.version>1.2.2</mybatis.spring.version>
  14. <mybatis.paginator.version>1.2.15</mybatis.paginator.version>
  15. <mysql.version>5.1.32</mysql.version>
  16. <slf4j.version>1.6.4</slf4j.version>
  17. <jackson.version>2.4.2</jackson.version>
  18. <druid.version>1.0.9</druid.version>
  19. <httpclient.version>4.3.5</httpclient.version>
  20. <jstl.version>1.2</jstl.version>
  21. <servlet-api.version>2.5</servlet-api.version>
  22. <jsp-api.version>2.0</jsp-api.version>
  23. <joda-time.version>2.5</joda-time.version>
  24. <commons-lang3.version>3.3.2</commons-lang3.version>
  25. <commons-io.version>1.3.2</commons-io.version>
  26. <commons-net.version>3.3</commons-net.version>
  27. <pagehelper.version>3.4.2-fix</pagehelper.version>
  28. <jsqlparser.version>0.9.1</jsqlparser.version>
  29. <commons-fileupload.version>1.3.1</commons-fileupload.version>
  30. <jedis.version>2.7.2</jedis.version>
  31. <solrj.version>4.10.3</solrj.version>
  32. </properties>
  33. <dependencyManagement>
  34. <dependencies>
  35. <!-- 时间操作组件 -->
  36. <dependency>
  37. <groupId>joda-time</groupId>
  38. <artifactId>joda-time</artifactId>
  39. <version>${joda-time.version}</version>
  40. </dependency>
  41. <!-- Apache工具组件 -->
  42. <dependency>
  43. <groupId>org.apache.commons</groupId>
  44. <artifactId>commons-lang3</artifactId>
  45. <version>${commons-lang3.version}</version>
  46. </dependency>
  47. <dependency>
  48. <groupId>org.apache.commons</groupId>
  49. <artifactId>commons-io</artifactId>
  50. <version>${commons-io.version}</version>
  51. </dependency>
  52. <dependency>
  53. <groupId>commons-net</groupId>
  54. <artifactId>commons-net</artifactId>
  55. <version>${commons-net.version}</version>
  56. </dependency>
  57. <!-- Jackson Json处理工具包 -->
  58. <dependency>
  59. <groupId>com.fasterxml.jackson.core</groupId>
  60. <artifactId>jackson-databind</artifactId>
  61. <version>${jackson.version}</version>
  62. </dependency>
  63. <!-- httpclient -->
  64. <dependency>
  65. <groupId>org.apache.httpcomponents</groupId>
  66. <artifactId>httpclient</artifactId>
  67. <version>${httpclient.version}</version>
  68. </dependency>
  69. <!-- 单元测试 -->
  70. <dependency>
  71. <groupId>junit</groupId>
  72. <artifactId>junit</artifactId>
  73. <version>${junit.version}</version>
  74. <scope>test</scope>
  75. </dependency>
  76. <!-- 日志处理 -->
  77. <dependency>
  78. <groupId>org.slf4j</groupId>
  79. <artifactId>slf4j-log4j12</artifactId>
  80. <version>${slf4j.version}</version>
  81. </dependency>
  82. <!-- Mybatis -->
  83. <dependency>
  84. <groupId>org.mybatis</groupId>
  85. <artifactId>mybatis</artifactId>
  86. <version>${mybatis.version}</version>
  87. </dependency>
  88. <dependency>
  89. <groupId>org.mybatis</groupId>
  90. <artifactId>mybatis-spring</artifactId>
  91. <version>${mybatis.spring.version}</version>
  92. </dependency>
  93. <dependency>
  94. <groupId>com.github.miemiedev</groupId>
  95. <artifactId>mybatis-paginator</artifactId>
  96. <version>${mybatis.paginator.version}</version>
  97. </dependency>
  98. <dependency>
  99. <groupId>com.github.pagehelper</groupId>
  100. <artifactId>pagehelper</artifactId>
  101. <version>${pagehelper.version}</version>
  102. </dependency>
  103. <!-- MySql -->
  104. <dependency>
  105. <groupId>mysql</groupId>
  106. <artifactId>mysql-connector-java</artifactId>
  107. <version>${mysql.version}</version>
  108. </dependency>
  109. <!-- 连接池 -->
  110. <dependency>
  111. <groupId>com.alibaba</groupId>
  112. <artifactId>druid</artifactId>
  113. <version>${druid.version}</version>
  114. </dependency>
  115. <!-- Spring -->
  116. <dependency>
  117. <groupId>org.springframework</groupId>
  118. <artifactId>spring-context</artifactId>
  119. <version>${spring.version}</version>
  120. </dependency>
  121. <dependency>
  122. <groupId>org.springframework</groupId>
  123. <artifactId>spring-beans</artifactId>
  124. <version>${spring.version}</version>
  125. </dependency>
  126. <dependency>
  127. <groupId>org.springframework</groupId>
  128. <artifactId>spring-webmvc</artifactId>
  129. <version>${spring.version}</version>
  130. </dependency>
  131. <dependency>
  132. <groupId>org.springframework</groupId>
  133. <artifactId>spring-jdbc</artifactId>
  134. <version>${spring.version}</version>
  135. </dependency>
  136. <dependency>
  137. <groupId>org.springframework</groupId>
  138. <artifactId>spring-aspects</artifactId>
  139. <version>${spring.version}</version>
  140. </dependency>
  141. <!-- JSP相关 -->
  142. <dependency>
  143. <groupId>jstl</groupId>
  144. <artifactId>jstl</artifactId>
  145. <version>${jstl.version}</version>
  146. </dependency>
  147. <dependency>
  148. <groupId>javax.servlet</groupId>
  149. <artifactId>servlet-api</artifactId>
  150. <version>${servlet-api.version}</version>
  151. <scope>provided</scope>
  152. </dependency>
  153. <dependency>
  154. <groupId>javax.servlet</groupId>
  155. <artifactId>jsp-api</artifactId>
  156. <version>${jsp-api.version}</version>
  157. <scope>provided</scope>
  158. </dependency>
  159. <!-- 文件上传组件 -->
  160. <dependency>
  161. <groupId>commons-fileupload</groupId>
  162. <artifactId>commons-fileupload</artifactId>
  163. <version>${commons-fileupload.version}</version>
  164. </dependency>
  165. <!-- Redis客户端 -->
  166. <dependency>
  167. <groupId>redis.clients</groupId>
  168. <artifactId>jedis</artifactId>
  169. <version>${jedis.version}</version>
  170. </dependency>
  171. <!-- solr客户端 -->
  172. <dependency>
  173. <groupId>org.apache.solr</groupId>
  174. <artifactId>solr-solrj</artifactId>
  175. <version>${solrj.version}</version>
  176. </dependency>
  177. </dependencies>
  178. </dependencyManagement>
  179. <build>
  180. <finalName>${project.artifactId}</finalName>
  181. <plugins>
  182. <!-- 资源文件拷贝插件 -->
  183. <plugin>
  184. <groupId>org.apache.maven.plugins</groupId>
  185. <artifactId>maven-resources-plugin</artifactId>
  186. <version>2.7</version>
  187. <configuration>
  188. <encoding>UTF-8</encoding>
  189. </configuration>
  190. </plugin>
  191. <!-- java编译插件 -->
  192. <plugin>
  193. <groupId>org.apache.maven.plugins</groupId>
  194. <artifactId>maven-compiler-plugin</artifactId>
  195. <version>3.2</version>
  196. <configuration>
  197. <source>1.7</source>
  198. <target>1.7</target>
  199. <encoding>UTF-8</encoding>
  200. </configuration>
  201. </plugin>
  202. </plugins>
  203. <pluginManagement>
  204. <plugins>
  205. <!-- 配置Tomcat插件 -->
  206. <plugin>
  207. <groupId>org.apache.tomcat.maven</groupId>
  208. <artifactId>tomcat7-maven-plugin</artifactId>
  209. <version>2.2</version>
  210. <configuration>
  211. <path>/</path>
  212. <port>8888</port>
  213. <charset>utf-8</charset>
  214. <uriEncoding>UTF-8</uriEncoding>
  215. </configuration>
  216. </plugin>
  217. </plugins>
  218. </pluginManagement>
  219. </build>
  220. </project>

5.maven install 打包到本地仓库

2.创建taotao-common(依赖taotao-parent)

1.new a maven project

2.Create a simple project

3.Group id与taotao-parent的Group id一致(同一组织)

4.Packaging选择jar(被其他工程所引用)

5.填入Parent Project信息(taotao-parent的信息)

6.修改pom.xml,添加对taotao-parent的继承(依赖传递)

[html] view plain copy

  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. <parent>
  4. <groupId>com.taotao</groupId>
  5. <artifactId>taotao-parent</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. </parent>
  8. <groupId>com.taotao</groupId>
  9. <artifactId>taotao-common</artifactId>
  10. <version>0.0.1-SNAPSHOT</version>
  11. </project>

7.工程点击右键→maven→update Project Configuration

3.创建taotao-manager

1.new a maven project

2.Create a simple project

3.Group id与taotao-parent的Group id一致(同一组织)

4.Packaging选择pom(聚合工程)

5.填入Parent Project信息(taotao-parent的信息)

6.修改pom.xml,添加对taotao-parent的继承和对taotao-common的依赖

4.创建taotao-manager-pojo模块

1.右键taotao-manager---new Maven Module

2.Create a simple project

3.Packaging选择jar(被其他工程所引用)

4.Group id与taotao-parent的Group id一致(同一组织)

5.pom文件不需要修改,不依赖任何jar包

5.创建taotao-manager-mapper

1.右键taotao-manager---new Maven Module

2.Create a simple project

3.Packaging选择jar(被其他工程所引用)

4.Group id与taotao-parent的Group id一致(同一组织)

5.pom文件修改(依赖taotao-manager-pojo)。及添加mybatis、分页插件、数据库连接池、mysql连接依赖

6.创建taotao-manager-service

1.右键taotao-manager---new Maven Module

2.Create a simple project

3.Packaging选择jar(被其他工程所引用)

4.Group id与taotao-parent的Group id一致(同一组织)

5.pom文件修改(依赖taotao-manager-mapper)。及添加spring相关依赖

7.创建taotao-manager-web

1.右键taotao-manager---new Maven Module

2.Create a simple project

3.Packaging选择war

4.Group id与taotao-parent的Group id一致(同一组织)

5.pom文件修改(依赖taotao-manager-service)。及添加jstl、jsp、servlet、commons-fileupload等依赖

6.在webapp下创建WEB-INF,继续创建web.xml

[html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. id="taotao" version="2.5">
  6. <display-name>taotao-manager</display-name>
  7. <welcome-file-list>
  8. <welcome-file>index.html</welcome-file>
  9. <welcome-file>index.htm</welcome-file>
  10. <welcome-file>index.jsp</welcome-file>
  11. <welcome-file>default.html</welcome-file>
  12. <welcome-file>default.htm</welcome-file>
  13. <welcome-file>default.jsp</welcome-file>
  14. </welcome-file-list>
  15. </web-app>

运行测试

要运行工程,需要运行聚合工程也就是taotao-manager。

1.在taotao-manager工程的pom文件中添加如下内容:

[html] view plain copy

  1. <build>
  2. <!-- 配置插件 -->
  3. <plugins>
  4. <plugin>
  5. <groupId>org.apache.tomcat.maven</groupId>
  6. <artifactId>tomcat7-maven-plugin</artifactId>
  7. <configuration>
  8. <port>8080</port>
  9. <path>/</path>
  10. </configuration>
  11. </plugin>
  12. </plugins>
  13. </build>

2.使用maven命令:

clean tomcat7:run

注意:

(1)需要把taotao-parent工程安装到本地仓库。Install

(2)需要把taotao-common安装到本地仓库。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码