2011-01-07 146 views
0

我目前正在與一個Maven基於項目工作(可以稱之爲核心)在Java中,我們目前已經把它分解出到以下幾個模塊:.net與Maven的解決方案結構?

  • 核心
  • Core.Integration

我目前使用IntelliJ作爲我的IDE,他們都構建並擁有自己的pom文件(Core項目也包含單元測試)。雖然具有可用輸出的唯一模塊是Core,但Core.Integration僅用於將Core與其他項目進行集成測試,因此該模塊沒有實際輸出。

我們已經將Core.Integration作爲自己的模塊,而不是在覈心內使用測試文件夾,因爲它具有額外的依賴項,比如另一個內部項目(讓我們稱之爲ThirdParty),所以爲了證明Core與ThirdParty一起工作,我們有一套集成測試。核心模塊不需要知道ThirdParty,單元測試也不需要使用這個其他項目,因爲在Maven中只有1個測試範圍,所以我們不希望用這種依賴性來弄髒核心模塊。

所以......現在我們知道爲什麼我們有這個獨立的集成測試模塊,我會去的主要問題...

讓說核心模塊本身建立很好,所有的單元測試通過,然後您會發現Core.Integration模塊中存在失敗的測試。假如你已經打開了這兩個模塊,你可以意識到這一點,並且在你修復失敗的測試之前不要部署你的改變。然而,其他一些IDE只能打開一個模塊,並且必須手動將其包含在其他模塊中,因此可以讓開發人員檢查項目,然後加載Core模塊,但不包括集成測試模塊因爲他暫時不需要它,他做出了一切改變,並且他部署了。在這一點上,構建被破壞,我們必須重新訪問它的全部破裂的原因和位置。

在.net中,您有解決方案和其中的許多項目的想法,如果其中一個項目失敗,解決方案將失敗。因此,採取上述方法並將其應用於.net(假裝我們也有一種名爲「Core」的解決方案)。如果我們要檢查我們的解決方案並打開它,我們會自動查看所有子項目,然後如果我們進行相同的更改並構建解決方案,它會告訴我們由於其中一個子項目失敗而失敗。這是什麼即時通訊之後,一個父母的想法解決方案其中有許多孩子模型,將始終加載在一起,然後如果一個失敗它都失敗了,所以對於打破測試的反饋是太遲了。而目前他們似乎只是單個模塊而沒有鏈接。

我的其他問題也是不同的開發人員使用不同的IDE(即IntelliJ,Eclipse,Netbeans),所以如果這種類型的項目結構可能使用Maven風格的pom方法,那麼我需要它,所以不同的IDE應該認識到這一點,而無需手動步驟不得不包括其他模塊等......

對不起,華夫格在那裏,但想給一個更具體的問題和項目結構更全面的背景。

回答

0

經過多年的研究,似乎你不能真正做到這一點,而不會破解某些IDE或項目文件。

理想我想

MyProject的 | - MyProject.Core | - 我的項目。IntegrationTests

所以如果有什麼失敗MyProject的將被歸類爲構建失敗...

我已經不是給出走了

  • MyProject.Core
  • MyProject.IntegrationTests

如果一個失敗,我只是使用常識,並決定其失敗的構建...