[toc]
Ввиду недавнего изучения разработки распределенного проекта, давайте поговорим о фактическом развитии использования IntelliJ IDEA для создания многомодульного проекта на основе Maven.Могут быть неподходящие места, но проект можно прогнать.Пожалуйста. также упомяните о недостатках.Выходите и обсудите вместе.
1. Каталог проекта проекта
Сначала покажите, окончательный каталог проекта всего проекта:
Кратко опишите структуру каталогов:common-parent
Это родительский проект всех проектов, в основном используемый для управления пакетами и версиями jar, используемыми всеми проектами.common-utils
Это общедоступный проект класса инструментов, наследующий родительский проект, и он будет упакован в пакет jar для использования другими проектами.taotao-manager
Для нашего собственного проекта наследуйте от нашего родительского проекта.taotao-manager-pojo
Как подмодуль нашего собственного проекта, он зависит от taotao-manager и упакован в jar-пакет.taotao-manager-mapper
Для подмодуля нашего собственного проекта он зависит от taotao-manager-pojo и упакован в пакет jar.taotao-manager-service
Как подмодуль нашего собственного проекта, он зависит от taotao-manager-mapper и упакован в пакет jar.taotao-manager-web
Для подмодуля нашего собственного проекта он зависит от taotao-manager-service и упакован как военный пакет
2. Создайте родительский проект
Ниже приведены специальные операции:
- Сначала откройте IntelliJ IDEA и выполните следующие действия:
Или открыть IDEA в первый раз,
- Перейдите в каталог создания, выберите Пустой проект, далее
- Перейдите на страницу «Новый проект», введите имя проекта, выберите «Расположение проекта» и нажмите «Готово».
Дождитесь загрузки IDEA и перейдите к следующему шагу. - Выберите File->New->Module, чтобы перейти на страницу New Module:
- На странице «Новый модуль» выполните следующие действия:
- Введите название организации и название проекта, а также номер версии.
- Настройте локальный каталог maven и файл конфигурации репозитория maven.
- Последним шагом в создании родительского проекта является присвоение имени модулю, выбор рабочего каталога и нажатие кнопки «Готово».
В ожидании создания файла pom обратите внимание на изменение метода упаковки на pom, измените файл pom следующим образом: (Поскольку файл pom длинный, дана только часть, получите все, обратите вниманиеgithub)
<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>cn.william</groupId>
<artifactId>common-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging><!--修改打包方式-->
<name>common-parent</name>
<url>http://maven.apache.org</url>
<!--集中定义依赖版本号-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.12</junit.version>
...(省略)
</properties>
<dependencyManagement>
<dependencies>
<!-- 时间操作组件 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
...(省略)
</dependencyManagement>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
3. Создайте общедоступный служебный класс
Во-первых, общий служебный класс наследуется от родительского проекта common-parent.
Следует отметить, что для того, чтобы проект отображался в виде подмодулей (аналогично разработке в eclipse), необходимо отметить один шаг при создании common-utils:
Обратите особое внимание на следующий шаг, этот шаг повлияет на структуру каталогов,
Также обратите внимание, что метод упаковки проекта — jar, который отличается от родительского проекта.
<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">
<parent>
<artifactId>common-parent</artifactId>
<groupId>cn.william</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../common-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>common-utils</artifactId>
<packaging>jar</packaging><!-- 打成jar包 -->
<name>common-utils</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- jar包的依赖 -->
<dependencies>
<!-- 时间操作组件 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
...(省略)
</dependencies>
</project>
3. Создайте проект разработки
Создайте проект разработки taotao-manager, шаги создания такие же, как описано выше, он также наследуется от common-parent, и его файл pom также изменяется.Подробности следующие:
<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">
<parent>
<artifactId>common-parent</artifactId>
<groupId>cn.william</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../common-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>taotao-manager</artifactId>
<packaging>pom</packaging>
<name>taotao-manager</name>
<url>http://maven.apache.org</url>
<modules>
<module>taotao-manager-pojo</module>
<module>taotao-manager-mapper</module>
<module>taotao-manager-service</module>
<module>taotao-manager-web</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 依赖管理 -->
<dependencies>
<dependency>
<groupId>cn.william</groupId>
<artifactId>common-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<!-- 配置插件 -->
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
4. Создайте подмодуль проекта разработки
Создайте подмодули, такие как taotao-manager-pojo, mapper, service, web и т. д. Детали следующие:
-
Щелкните правой кнопкой мыши taotao-manager, выберите «Создать», «Модуль»,
Обратите внимание, что на этом шаге, в отличие от создания common-utils, его подмодули добавляются в каталог taotao-manager:
Соответствующая конфигурация maven, сохраните значение по умолчанию:
Просто обратите внимание на каталог, в котором находится субмодуль: -
Создайте другие подмодули под taotao-manager
Подмодуль taotao-manager-pojo создается как было сказано выше Остальные три подмодуля создаются аналогично.Есть отличие.При создании подмодуля taotao-manager-web тип проекта maven выбирается следующим образом: -
Измените файл pom подмодуля
Подмодули pojo, mapper и service упакованы как jar-файлы, и только веб-подмодули упакованы как пакеты war.
Подмодуль pojo, pom.xml, детализирован следующим образом:
<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">
<parent>
<artifactId>taotao-manager</artifactId>
<groupId>cn.william</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>taotao-manager-pojo</artifactId>
<packaging>jar</packaging>
<name>taotao-manager-pojo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
Подмодуль mapper зависит от подмодуля pojo.Подробности pom.xml следующие:
<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">
<parent>
<artifactId>taotao-manager</artifactId>
<groupId>cn.william</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>taotao-manager-mapper</artifactId>
<packaging>jar</packaging>
<name>taotao-manager-mapper</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 依赖与pojo子模块 -->
<dependency>
<groupId>cn.william</groupId>
<artifactId>taotao-manager-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
</dependencies>
</project>
Подмодуль службы зависит от подмодуля картографа.Подробности pom.xml следующие:
<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">
<parent>
<artifactId>taotao-manager</artifactId>
<groupId>cn.william</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>taotao-manager-service</artifactId>
<packaging>jar</packaging>
<name>taotao-manager-service</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 依赖与mapper子模块 -->
<dependency>
<groupId>cn.william</groupId>
<artifactId>taotao-manager-mapper</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
...(省略)
</dependencies>
</project>
Веб-подмодуль зависит от сервисного подмодуля.Подробности pom.xml следующие:
<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">
<parent>
<artifactId>taotao-manager</artifactId>
<groupId>cn.william</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>taotao-manager-web</artifactId>
<packaging>war</packaging><!--打成war包-->
<name>taotao-manager-web Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- 依赖于service -->
<dependency>
<groupId>cn.william</groupId>
<artifactId>taotao-manager-service</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
...(省略)
</dependencies>
<build>
<finalName>taotao-manager-web</finalName>
</build>
</project>
Для частей, опущенных выше, вы можете просмотреть полный проект на github по адресу:
5. Запуск проекта
-
Создать index.jsp
На данный момент создание проекта завершено, мы можем создать index.jsp в каталоге webapp taotao-manager-web, детали следующие: -
Используйте плагин tomcat
Для запуска проекта используем плагин maven tomcat, перед этим убедитесь, что плагин tomcat настроен в файле pom taotao-manager:...(省略) <build> <!-- 配置插件 --> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8080</port> <path>/</path> </configuration> </plugin> </plugins> </build> ...(省略)
-
Настройте подключаемый модуль Maven Tomcat для запуска веб-проектов.
(1) Добавить новую конфигурацию
(2) Нажмите «Выполнить» или нажмите «Отладка» рядом с ним.
(3) Ошибка элемента
Если есть ошибка, возможно, в локальном репозитории не установлены common-parent и common-utils.Ошибка в том, что не удается найти jar-пакет common-utils, поэтому нам нужно его установить.
Ожидание установки пакета jar в локальный репозиторий может быть немного медленным, наберитесь терпения. . .
После завершения установки запустите ее еще раз, и появится следующая информация, которая доказывает, что операция прошла успешно:
Доступ через браузер:
На данный момент среда нашего проекта успешно построена, и следующим шагом является фактическая разработка проекта.
утверждение:
① Что касается пропущенной части в приведенном выше коде, она опущена, потому что содержание слишком длинное.Если вы хотите просмотреть завершенный проект, пожалуйста, проверьте мой github, адрес:
Приложение GitHub.com/William H…
② Что касается любых вышеперечисленных недостатков, пожалуйста, поймите, в конце концов, мои технологии ограничены, и я все еще нахожусь в стадии обучения, я также могу высказывать разумные мнения и совершенствоваться вместе.
③ Черное и черное, если вам нравится, добавьте еще один белый, хахаха