Создайте многомодульный проект с помощью IDEA на основе maven

Java задняя часть maven

[toc]

Ввиду недавнего изучения разработки распределенного проекта, давайте поговорим о фактическом развитии использования IntelliJ IDEA для создания многомодульного проекта на основе Maven.Могут быть неподходящие места, но проект можно прогнать.Пожалуйста. также упомяните о недостатках.Выходите и обсудите вместе.

1. Каталог проекта проекта

Сначала покажите, окончательный каталог проекта всего проекта:

projectTree

Кратко опишите структуру каталогов:
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. Создайте родительский проект

Ниже приведены специальные операции:

  1. Сначала откройте IntelliJ IDEA и выполните следующие действия:
    createParent1
    Или открыть IDEA в первый раз,
    createParent2
  2. Перейдите в каталог создания, выберите Пустой проект, далее
    createParent3
  3. Перейдите на страницу «Новый проект», введите имя проекта, выберите «Расположение проекта» и нажмите «Готово».
    createParent4
    Дождитесь загрузки IDEA и перейдите к следующему шагу.
  4. Выберите File->New->Module, чтобы перейти на страницу New Module:
    createParent5
  5. На странице «Новый модуль» выполните следующие действия:
    createParent6
  6. Введите название организации и название проекта, а также номер версии.
    createParent7
  7. Настройте локальный каталог maven и файл конфигурации репозитория maven.
    createParent8
  8. Последним шагом в создании родительского проекта является присвоение имени модулю, выбор рабочего каталога и нажатие кнопки «Готово».
    createParent9

В ожидании создания файла 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:
createUtils1
createUtils2
Обратите особое внимание на следующий шаг, этот шаг повлияет на структуру каталогов,
createUtils3
createUtils4
createUtils5
createUtils6

Также обратите внимание, что метод упаковки проекта — 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 и т. д. Детали следующие:

  1. Щелкните правой кнопкой мыши taotao-manager, выберите «Создать», «Модуль»,
    createSon1
    createSon2
    Обратите внимание, что на этом шаге, в отличие от создания common-utils, его подмодули добавляются в каталог taotao-manager:
    createSon3
    Соответствующая конфигурация maven, сохраните значение по умолчанию:
    createSon4
    Просто обратите внимание на каталог, в котором находится субмодуль:
    createSon5

  2. Создайте другие подмодули под taotao-manager
    Подмодуль taotao-manager-pojo создается как было сказано выше Остальные три подмодуля создаются аналогично.Есть отличие.При создании подмодуля taotao-manager-web тип проекта maven выбирается следующим образом:
    createSon6

  3. Измените файл 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. Запуск проекта

  1. Создать index.jsp
    На данный момент создание проекта завершено, мы можем создать index.jsp в каталоге webapp taotao-manager-web, детали следующие:
    createIndex

  2. Используйте плагин 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>
    ...(省略)
    
  3. Настройте подключаемый модуль Maven Tomcat для запуска веб-проектов.

(1) Добавить новую конфигурацию
mavenTomcatPlugin

addPlugin

(2) Нажмите «Выполнить» или нажмите «Отладка» рядом с ним.
tomcatRun

(3) Ошибка элемента
Если есть ошибка, возможно, в локальном репозитории не установлены common-parent и common-utils.Ошибка в том, что не удается найти jar-пакет common-utils, поэтому нам нужно его установить.
mavenInstall

Ожидание установки пакета jar в локальный репозиторий может быть немного медленным, наберитесь терпения. . .

После завершения установки запустите ее еще раз, и появится следующая информация, которая доказывает, что операция прошла успешно:
runSuccess

Доступ через браузер:
browserSuccess

На данный момент среда нашего проекта успешно построена, и следующим шагом является фактическая разработка проекта.

утверждение:
① Что касается пропущенной части в приведенном выше коде, она опущена, потому что содержание слишком длинное.Если вы хотите просмотреть завершенный проект, пожалуйста, проверьте мой github, адрес:
Приложение GitHub.com/William H…
② Что касается любых вышеперечисленных недостатков, пожалуйста, поймите, в конце концов, мои технологии ограничены, и я все еще нахожусь в стадии обучения, я также могу высказывать разумные мнения и совершенствоваться вместе.
③ Черное и черное, если вам нравится, добавьте еще один белый, хахаха