1. 程式人生 > >intellij用maven來建立多模組專案

intellij用maven來建立多模組專案

Maven 與 IntelliJ IDEA 的完美結合 

可以先看看這個帖子,用intellijmaven構建多模組工程還是有很多好處的。

IntelliJ IDEA借鑑的Maven的概念,不在採取Eclipse裡Project的概念,一切都是Module。無論是否使用Maven,你的專案都是一個獨立 的Module。並且你可以混搭使用Maven Module和普通的Java Module,兩者可以和諧共存。

 

Intellij構建多模組的視窗

有時一個模組是用來dao的,一個用來service等的……多人協作開發……

首先建立一個空專案:Demo,New Project對話方塊左側選擇Maven Module(IDEA中的Module對應於Eclipse中的Project)

 

進入下一步,需要模板就打勾,web專案選址webapp

 

右擊專案,選擇新建module

 

下一步

 

選擇webapp

 

下一步後預設情況是這樣的:

 

點選“finish”,會出現如下的提示:

 

上網幾乎找不到答案,不過應該也簡單,第一行沒有填,要填的意思,可是找還是需要下載maven開源專案才可以的,所以要上Apache官網下載maven專案,解壓到任何一個目錄下,“override”打勾,點選“...”,選擇mavenhome目錄,不需要選擇下面的子目錄,然後點選“finish”。沒有錯誤了,聯網下嘩啦啦地下載了很多東西!

 

下載完會有如下一些提示:

 

"C:\Program Files\Java\jdk1.7.0_51\bin\java" -Dmaven.home=E:\apache-maven-3.2.3 -Dclassworlds.conf=E:\apache-maven-3.2.3\bin\m2.conf -Dfile.encoding=UTF-8 -classpath E:\apache-maven-3.2.3\boot\plexus-classworlds-2.5.1.jar org.codehaus.classworlds.Launcher -DinteractiveMode=false -DgroupId=demo -DartifactId=service -Dversion=1.0-SNAPSHOT -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=RELEASE org.apache.maven.plugins:maven-archetype-plugin:RELEASE:generate

[INFO] Scanning for projects...

[INFO]                                                                         

[INFO] ------------------------------------------------------------------------

[INFO] Building Maven Stub Project (No POM) 1

[INFO] ------------------------------------------------------------------------

[INFO] 

[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>

[INFO] 

[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<

[INFO] 

[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---

[INFO] Generating project in Batch mode

根目錄下的pom.xml檔案裡面自動生成:

 

各個模組中的pom.xml內容大約是:

 

在找裡面配置下載各個依賴jar包就可以了,這樣就可以聯合開發了。與github一起使用,就像在企業裡面團體開發一模一樣了。

在主pom.xml檔案裡面配置統一的jar包,分專案配置pom.xml就不用指定版本號了,直接引用就可以。

這個標籤是:dependencyManagement

如:

<?xml version="1.0" encoding="UTF-8"?>
<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>apollo</groupId>
    <artifactId>apollo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>apollo.authority.dao</module>
    </modules>



    <dependencyManagement>


        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>
            <!--<dependency>-->
            <!--<groupId>org.hamcrest</groupId>-->
            <!--<artifactId>hamcrest-all</artifactId>-->
            <!--<version>1.3</version>-->
            <!--<type>jar</type>-->
            <!--<scope>test</scope>-->
            <!--</dependency>-->

            <!-- jstl -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.2.1-b03</version>
                <scope>provided</scope>
            </dependency>
            <!-- fastJson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.1.24</version>
            </dependency>

            <!-- mysql資料庫驅動 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.21</version>
            </dependency>
            <!--sql server資料庫驅動-->
            <dependency> <groupId>net.sourceforge.jtds</groupId> <artifactId>jtds</artifactId> <version>1.2.4</version> </dependency>
            <!--oracle資料庫驅動-->
            <!--<dependency>-->
                <!--<groupId>com.oracle</groupId>-->
                <!--<artifactId>ojdbc14</artifactId>-->
                <!--<version>10.2.0.4.0</version>-->
            <!--</dependency>-->

            <!-- druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>0.2.8</version>
            </dependency>
            <!-- aspectjweaver -->
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.7.0</version>
            </dependency>
            <!-- servlet -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>provided</scope>
            </dependency>
            <!-- log4j -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.8</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.2.2</version>
            </dependency>

            <!-- struts2 -->
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>2.3.16.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>javassist</groupId>
                        <artifactId>javassist</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-spring-plugin</artifactId>
                <version>2.3.16.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-convention-plugin</artifactId>
                <version>2.3.16.3</version>
            </dependency>

            <!-- spring3 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-asm</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>3.1.2.RELEASE</version>
            </dependency>


            <!-- alibaba rocketmq -->
            <dependency>
                <groupId>com.alibaba.rocketmq</groupId>
                <artifactId>rocketmq-client</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.rocketmq</groupId>
                <artifactId>rocketmq-common</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.rocketmq</groupId>
                <artifactId>rocketmq-remoting</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>5.0.0.Alpha1</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.7</version>
            </dependency>




            <!-- for test start -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>20030825.184428</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.test4j</groupId>
                <artifactId>test4j.testng</artifactId>
                <version>2.0.6</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.test4j</groupId>
                <artifactId>test4j.integrated</artifactId>
                <version>2.0.6</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.test4j</groupId>
                <artifactId>test4j.spec</artifactId>
                <version>2.0.6</version>
                <scope>test</scope>
            </dependency>
            <!-- for test end -->
            <!--alibaba dubbo -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
                <exclusions>
                    <exclusion>
                        <artifactId>spring</artifactId>
                        <groupId>org.springframework</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

            <dependency>
                <groupId>com.github.sgroschupf</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.1</version>
            </dependency>
            <dependency>
                <groupId>com.netflix.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>1.1.16</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.3.3</version>
            </dependency>





            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.1.2</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.1.2</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-access</artifactId>
                <version>1.1.2</version>
            </dependency>
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>3.4</version>
            </dependency>



        </dependencies>



    </dependencyManagement>

</project>

在分模組裡面的pom.xml就可以這樣寫:

<?xml version="1.0" encoding="UTF-8"?>
<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>apollo</artifactId>
        <groupId>apollo</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>apollo.authority.dao</artifactId>
    <!--<name>authority.dao</name>-->
    <!--<packaging>jar</packaging>-->



    <dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-asm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
        </dependency>
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
        </dependency>

        <!-- for test start -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.test4j</groupId>
            <artifactId>test4j.testng</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.test4j</groupId>
            <artifactId>test4j.integrated</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.test4j</groupId>
            <artifactId>test4j.spec</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- for test end -->

    </dependencies>




</project>

intellij裡面

pom.xml左邊有向下的箭頭,點選就能進入分pom.xml裡面的配置了

而分pom.xml裡面有向上的箭頭,點選可以跳轉到主pom.xml

都配置完後,以前下載過的jar包不會自動下載,此時就點選右邊的maven面板,展開功能。雙擊根目錄下的“install”。就會引用jar包。

在最下面會出現“Dependencies”。展開也能看到依賴的jar包。

專案目錄那邊也能看到:


相關推薦

intellijmaven建立模組專案

Maven 與 IntelliJ IDEA 的完美結合  可以先看看這個帖子,用intellij來maven構建多模組工程還是有很多好處的。 IntelliJ IDEA借鑑的Maven的概念,不在採取Eclipse裡Project的概念,一切都是Module。無論是

maven建立scala和java專案程式碼環境(圖文詳解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆適用)(博主推薦)

  不多說,直接上乾貨! 為什麼要寫這篇部落格?   首先,對於spark專案,強烈建議搭建,用Intellij IDEA(Ultimate版本),如果你還有另所愛好嘗試Scala IDEA for Eclipse,有時間自己去玩玩。但最好追隨大流。   對於hadoop專案,強烈建議用

Spring Boot2企業版快速開發平臺ALBase(2): 使用Maven建立模組專案

系統模組劃分 Maven多模組專案,適用於一些比較大的專案,通過合理的模組拆分,實現程式碼的複用,便於維護和管理。尤其是一些開源框架,也是採用多模組的方式,提供外掛整合,使用者可以根據需要配置指定的模組。   專案結構如下:     albase   (父

基於maven使用IDEA建立模組專案

鑑於最近學習一個分散式專案的開發,講一下關於使用IntelliJ IDEA基於Maven建立多模組專案的實際開發,可能有不合適的地方,但是專案是可以跑通的,也請有不足之處,都提出來,一起討論下。 一. 專案工程目錄 首先展示一下,最終整個專案的工程目錄

idea Maven建立模組專案(之單元測試)

前面兩篇已經建立好子模組,且各自關聯起來,接下來進行單元測試在idea中引入單元測試junit非常方便;選中類名右擊--->goto---->Test---->create new test;如圖:選擇需要的junit jar包,如圖:點選OK完成,然後ma

Scala IDEA for Eclipse裡maven建立scala和java專案程式碼環境(圖文詳解)

  這篇部落格   是在Scala IDEA for Eclipse裡手動建立scala程式碼編寫環境。   本博文,教大家,用maven來建立。   第一步:安裝scala外掛   因為,我win7下的scala環境是2.10.4    所以,選擇下載的

Maven實戰:maven建立專案已有專案模板建立專案

Maven的作用:在曾經的一次面試中,曾經被問到一個問題,maven是個什麼東東。 它的主要主要作用在於:1.構建專案;2.管理依賴;3.管理專案資訊 Maven構建專案:maven構建專案的命令:mvn archetype:generate 當執行這個命

46、Maven建立模組專案(個war,2017版Eclipse Neon.2)

執行環境: 2017年3月 Eclipse Neon.2 Apache Maven 3.3.9 jdk1.8 注意,此文跟網上所有的建立maven專案有所不同, 就是都會勾選 create a simple project,網上的都是不勾選的。下面就不額外提出了。 首先

idea使用maven-archetype-webapp建立模組專案無java資料夾和resources資料夾

1.原始專案結構圖 2.建立新的子專案,右鍵model->new model,選中create from archetype 3.填寫專案相關資訊 4.系統根據模板生成相應的資料夾 5.觀察圖片發現缺少java和resources資

idea(二)--idea中建立模組專案maven模組開發

一、idea中建立多模組專案(多工程同時開發) 熟悉eclipse、myeclipse的人都知道,eclipse、myeclipse中都有工作的空間(workspace)的概念,一個workspace中可以建立多個project,即可同時開啟多個專案進行開發。然而,遺憾的是

利用springboot建立模組專案

本文旨在用最通俗的語言講述最枯燥的基本知識 最近要對一個不大不小的專案進行重構,用spring覺得太過於繁瑣,用cloud又有覺得過於龐大,維護的人手不夠;權衡之下,最終選了springboot作為架子,但是因為專案涉及的業務模組較多,各個模組之間的業務交流不是很多,相對獨立,因此想著把專案做成多模組

IDEA springboot 建立模組專案,打包

原始碼:https://gitee.com/DencyCheng/springboot-multiModule/tree/dev 1.專案結構 2.專案依賴關係 multi-module :外層專案 model:實體類 persistence:持久化物件 web:控

Maven進行springBoot模組專案搭建

本文章旨在說明搭建springBoot多模組專案構建存在的一些問題以及如何改正!一、在eclipse下搭建Maven專案 eclipse以及Maven的安裝省略。新建Maven專案:1點選【new】-->【Maven Project】按照步驟新建Maven專案,專案名

gradle建立模組專案

第一種方式視覺化的:使用eclipse建立多模組專案示例 新建子專案 按嚮導新建專案gradleFirst 按嚮導新建專案gradleSecond(過程略) 按嚮導新建專案gradleParent(過程略) 完整的專案列表結構如下

Maven工程的模組專案專案專案之間的引用

     一個大專案需要一個團隊來完成,然後一個大型專案就拆分成幾塊來同時開發,節省時間,提高效率. 大致分為以下幾個模組(僅是自身經歷): |—依賴管理工程模組:一般現在開發都是以maven來管理jar包,方便.所以整個工程的依賴統一放在一個單獨工程中,一

spring boot建立模組專案

1:先建立一個聚合工程parent<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc

二、構建maven子專案(模組專案

這是接著 1、右鍵父專案New-->Model,把Create from archetype打上√,選著maven-archetype-quickstart,然後點選Next 2、填上

maven搭建springboot模組專案

如果是正常建立一個獨立的springboot專案,ide正常會自動建立一個啟動類。但是如果我們是採用maven來搭建專案,採用模組化建立專案工程,那麼這個啟動類就需要我們自己建立了。一、如何採用maven搭建多模組springboot專案cms1、建立一個maven專案cms

maven 單獨構建模組專案中的單個模組

最近在公司的一個專案裡用到了maven的多模組,由於專案比較大,每次修改後構建整個工程耗時太久,需要單獨構建某個模組,mvn有支援的選項: -pl, --projects Build specified reactor projects instead

IntelliJ IDEA中建立Web聚合專案(Maven模組專案)

Eclipse用多了,IntelliJ中建立Maven聚合專案可能有小夥伴還不太熟悉,我們今天就來看看。 IntelliJ中建立普通的Java聚合專案相對來說比較容易,不會涉及到web操作,涉及到web的話會有一點點麻煩。我們來一步一步看下。 環境:In