Maven 다 모듈 부자 공학 의 실현(Spring Boot 예시 포함)

1.Maven 다 중 모듈 을 왜 사용 합 니까?
이러한 항목 이 있다 고 가정 하면 흔히 볼 수 있 는 자바 웹 응용 프로그램 입 니 다.이 응용 프로그램 에서 우 리 는 몇 층 으로 나 누 었 다.
  • Dao
  • Service
  • Web
  • 대응 하 는 것 은 한 항목 에서 우 리 는 가방 이름 을 볼 수 있 습 니 다.
  • org.xx.app.dao
  • org.xx.app.service
  • org.xx.app.web
  • org.xx.app.util
  • 그러나 프로젝트 가 진행 되면 서 다음 과 같은 문제 에 부 딪 힐 수 있 습 니 다.
    4.567917.이 응용 프로그램 은 프론트 데스크 톱 과 백 스테이지 관리 단 이 필요 할 수 있 습 니 다.대부분의 dao,일부 service,그리고 대부분의 util 은 두 개의 응용 프로그램 에서 가능 하 다 는 것 을 알 게 되 었 습 니 다
  • pom.xml 의 의존 목록 이 점점 길 어 지면 서 다시 사용 할 수 있 습 니 다.그러나 현재 하나의 항목 만 있 기 때문에 이 WAR 에 의존 해 야 합 니 다
  • build 전체 프로젝트 의 시간 이 점점 길 어 지고 있 습 니 다.비록 웹 층 에서 일 하고 있 지만 전체 프로젝트 를 빌 드 해 야 합 니 다
  • 4.567917.특정한 모듈,예 를 들 어 util,당신 은 경험 이 풍부 한 사람 에 게 만 유지 하고 싶 습 니 다.그러나 현재 이런 상황 에서 모든 개발 자 들 이 수정 할 수 있 기 때문에 관건 적 인 모듈 의 코드 품질 이 당신 의 요구 에 부합 되 지 못 합 니 다.
    우 리 는 사실 여기 서 실제 적 으로'고 내 집적,저 결합'이라는 디자인 모델 원칙 을 지 키 지 않 았 다 는 것 을 알 게 될 것 이다.비록 우 리 는 가방 이름 을 통 해 차원 을 나 누 었 지만,너 는 이 가방 들 의 의존 은 모두 일방적인 것 이 고,가방 이 없 는 고리 의존 이 라 고 말 할 것 이다.이것 은 매우 좋 지만 아직 부족 하 다.왜냐하면 구축 차원 에서 볼 때 모든 것 이 결합 되 었 기 때문이다.그래서 우 리 는 Maven 구분 모듈 을 사용 해 야 한다.
    간단 한 Maven 모듈 구 조 는 다음 과 같다.
    
    ---- app-xxx
    
                 |-- pom.xml (pom)
    
                 |
    
                 |-- app-util
    
                 |        |-- pom.xml (jar)
    
                 |
    
                 |-- app-dao
    
                 |        |-- pom.xml (jar)
    
                 |
    
                 |-- app-service
    
                 |        |-- pom.xml (jar)
    
                 |
    
                 |-- app-web
    
                          |-- pom.xml (war)   
    2.Maven 다 중 모듈 취 합 프로젝트 생 성
    1.1 부모 프로젝트 만 들 기
    1.IDEA 를 예 로 들 면(Eclipse 대동소이)New--Project 선택

    2.팝 업 창 에서 Maven 을 선택 하고 JDK 를 선택 합 니 다.-->next

    3.GroupId 와 ArtifactId 를 입력 하 십시오.-->next

    4.전체 항목 이름과 항목 을 로 컬 에 저장 할 경 로 를 입력 하 십시오->finish

    5.완 성 된 후에 우 리 는 새 maven 프로젝트 를 우리 의 아버지 프로젝트 로 받 은 다음 에 디 렉 터 리 에 있 는 모든 src 를 삭제 하고 다음 과 같은 디 렉 터 리 를 얻 을 수 있 습 니 다.

    1.2 스프링 부 트 프로젝트
    Spring boot 는 단일 프로그램 을 만 들 때 기본의존 이 있 습 니 다.부모 프로젝트 를 사용자 정의 할 때 Spring boot 의 parent 를 프로젝트 의부모 가 관리 에 의존 하면 하위 프로젝트 는 두 개의 parent 가 존재 해서 오 류 를 보고 하고 의존 도 를 가 져 올 수 없습니다.
    해결 방안 은 다음 과 같다.
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring.boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    spring-boot-dependencies 를 사용 하여 springboot 의 의존 패키지 에 의존 하여 통일 적 으로 관리 합 니 다.
    Spring Boot 프로젝트,maven 부모 프로젝트 pom.xml 우리 가 해 야 할 처리
    
    <modelVersion>4.0.0</modelVersion>
        <!--    -->
        <groupId>com.tan</groupId>
        <artifactId>mtz-manager</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
    
        <name>mtz-manager</name>
        <description>mtz-manager    </description>
    
        <!--     -->
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <spring.boot.version>2.1.1.RELEASE</spring.boot.version>
        </properties>
    
        <!--      -->
        <dependencyManagement>
            <dependencies>
    
                <!-- SpringBoot     -->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>${spring.boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
            </dependencies>
        </dependencyManagement>
    
        <!--     jdk        -->
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
        <!--Maven          ,    -->
        <repositories>
            <repository>
                <id>public</id>
                <name>aliyun nexus</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </repository>
        </repositories>
    
        <!--Maven           ,    -->
        <pluginRepositories>
            <pluginRepository>
                <id>public</id>
                <name>aliyun nexus</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    이 곳 으로 부모 프로젝트 가 완료 되 었 습 니 다.
    2.1 하위 프로젝트 만 들 기
    1.하위 프로젝트 를 만 듭 니 다.먼저 부모 프로젝트 디 렉 터 리 를 선택 한 다음 New-->Model,팝 업 인터페이스 에서 직접-->Next

    3.다음 페이지 에 서 는 하위 프로젝트 이름 을 입력 하고-->Next

    4.상황 에 따라 다음 속성 치 를 수정 한 후 클릭--->finish

    5.완 성 된 후에 우리 하위 프로젝트 가 성공 적 으로 만 들 어 졌 습 니 다.다음 과 같은 디 렉 터 리 구 조 를 볼 수 있 습 니 다.

    또한 부모 프로젝트 의 pom 은 Modules 태그 와 내용 을 자동 으로 생 성하 여 집합 관계 가 있 는 프로젝트 를 만 들 었 습 니 다.

    끝 난 후에 Maven 보 기 를 열 고 부모 프로젝트 test 를 클릭 하여 오류 가 있 는 지 확인 합 니 다.아래 인쇄 를 보면 하위 프로젝트 가 성공 적 으로 만 들 어 졌 음 을 표시 합 니 다.

    2.2 스프링 부 트 프로젝트 만 들 기
    첫 번 째 단계:2.1 에 따라 필 자 공 사 를 완성 합 니 다.
    제2 부:우 리 는 2.1 로 설립 된 서브 프로젝트 를 다음 과 같이 수정 합 니 다.
    mtz-admin 모듈 을 새로 만 듭 니 다.mtz-admin 을 예 로 들 면 이 모듈 은 웹 모듈 입 니 다.
    1.mtz-admin 생 성 후 mtz-admin 의 pom.xml 를 수정 하여 다음 내용 을 추가 합 니 다.
    
        <dependencies>
            <!-- SpringBoot Web   -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    2。각각 application.yml 과 application.자바 를 추가 합 니 다.


    3.끝 난 후에 우 리 는 Spring Boot 응용 프로그램 을 얻 고 응용 프로그램 을 시작 하여 다음 과 같은 결 과 를 얻 으 면 생 성 이 성공 적 으로 완료 되 었 음 을 나타 낸다.

    Maven 다 중 모듈 부자 프로젝트 의 실현(Spring Boot 예제 포함)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.Maven 다 중 모듈 부자 프로젝트 에 관 한 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기