IDEA&Maven工程多模塊整合編譯

編譯環(huán)境: Ubuntu kylin 14.04, IntelliJ IDEA, jdk1.7


IDEA不似 myeclipse,在編寫代碼時,只能做到代碼檢測,而不會對整個項目進行實時編譯,往往需要手工編譯.
而且工程中各個模塊都可以運行時,maven編譯往往不通過.

編譯一個含有多個modul的工程,需要注意一下幾個問題:

1. 循環(huán)依賴

多個模塊之間,往往存在代碼共享,這樣,很有可能出現(xiàn)循環(huán)以來的問題.
比如項目A中有A1, A2, A3三個模塊,我們用A-->B代表A依賴B,這樣就可能出現(xiàn)

循環(huán)依賴 A1 --> A2 --> A3--> A1
雙向依賴 A1 <--> A2

這種情況下,編譯不會通過,相當(dāng)于一種死鎖,如下圖:

雙向依賴

既然是在IDEA中,當(dāng)然可以利用依賴圖查找問題依賴,并盡量處理掉.
具體見http://blog.csdn.net/isea533/article/details/52180116
以及 http://hck.iteye.com/blog/1728329

2. 依賴庫版本不一致

項目中module較多時,可能出現(xiàn)模塊之間所依賴的第三方庫版本不一致,甚至出現(xiàn)父pom與子pom之間的不一致,如果認(rèn)為版本問題當(dāng)然由第三方自己去解決,那就大錯特錯了.
這里就要用到<dependencyManagement>.
在父pom里對引用庫版本進行控制,在子pom里去除版本:

<!-- 父pom進行版本控制 -->
        <dependencyManagement>
          <dependencies>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>20.0</version>
            </dependency>
          </dependencies>
        </dependencyManagement>
<!-- 子pom 去除版本信息 -->
          <dependencies>
            <dependency>
              <groupId>com.google.guava</groupId>
              <artifactId>guava</artifactId>
          </dependency>

這樣,統(tǒng)一引入依賴,可以避免依賴庫時多次查找統(tǒng)計版本,出現(xiàn)照顧不周全的問題.
Management可能還有其他功能,有待發(fā)現(xiàn).

3. 多模塊編譯順序混亂

這是難也是最容易解決的問題.
如果你分別對子模塊進行編譯,就要考慮相互之間的依賴關(guān)系,進而要理順序,這樣在模塊較多的情況下,很難實現(xiàn),另外,如果直接對總項目進行compile,依然會出現(xiàn)混亂的問題,還有無法加載本地jar包的問題.
這時,有一個簡單的方法:

1>. 先對整個項目 install
2>. 有問題就解決問題,如去除 @Test用例中的error測試方法
3>. 直接對項目compile,一般不會出錯了...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屡拨,一起剝皮案震驚了整個濱河市臊恋,隨后出現(xiàn)的幾起案子圆丹,更是在濱河造成了極大的恐慌,老刑警劉巖李请,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞧筛,死亡現(xiàn)場離奇詭異,居然都是意外死亡捻艳,警方通過查閱死者的電腦和手機驾窟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來认轨,“玉大人绅络,你說我怎么就攤上這事∴易郑” “怎么了恩急?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纪蜒。 經(jīng)常有香客問我衷恭,道長,這世上最難降的妖魔是什么纯续? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任随珠,我火速辦了婚禮,結(jié)果婚禮上猬错,老公的妹妹穿的比我還像新娘窗看。我一直安慰自己,他們只是感情好倦炒,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布显沈。 她就那樣靜靜地躺著,像睡著了一般逢唤。 火紅的嫁衣襯著肌膚如雪拉讯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天鳖藕,我揣著相機與錄音魔慷,去河邊找鬼。 笑死著恩,一個胖子當(dāng)著我的面吹牛盖彭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播页滚,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼召边,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了裹驰?” 一聲冷哼從身側(cè)響起隧熙,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎幻林,沒想到半個月后贞盯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體音念,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年躏敢,在試婚紗的時候發(fā)現(xiàn)自己被綠了闷愤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡件余,死狀恐怖讥脐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啼器,我是刑警寧澤旬渠,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站端壳,受9級特大地震影響告丢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜损谦,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一岖免、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧照捡,春花似錦觅捆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掂摔。三九已至术羔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乙漓,已是汗流浹背级历。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叭披,地道東北人寥殖。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像涩蜘,于是被迫代替她去往敵國和親嚼贡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,770評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理同诫,服務(wù)發(fā)現(xiàn)粤策,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • 寫你的眉梢 彎彎如新月 從枝丫中來 緩緩上云霄 寫你的星眸 斟滿光酒 從遙遠(yuǎn)的森林盡頭 望入深秋
    蓮花星系閱讀 126評論 2 2
  • 支持省误窖、市叮盘、區(qū)秩贰、縣、三級柔吼。 地址表來源取自淘寶我的地址管理的JS地址表 下載地址
    張海青閱讀 345評論 0 0