2013-02-05 32 views
2

最終,我們試圖找出我公司的構建/部署過程。作爲開發人員,我需要將我的源代碼提供給審覈組。他們審查軟件的安全偏差。如果源代碼通過審計,則代碼將轉到軟件配置組。他們的工作是將我的應用程序歸檔並編譯爲WAR。然後將WAR文件提供給將部署WAR放置在服務器上的IT部門。如果我有一個自包含的項目,我認爲這個過程會很容易。Eclipse使用SCM /審覈組時的Maven多項目構建/部署過程

但在Eclipse中,我有兩個Maven項目,其中一個取決於另一個。一個項目core提供核心功能。我將它分開,因爲這些核心功能將被我所有其他(內部)Web應用程序項目使用。

Logging 
filters 
common models (phonebook, employee, etc) 
common utilities (Emailing employess, String utils, etc..) 

在其他項目中,說project1,我在POM添加一個依賴於core。不知道是否需要這樣做,但我也編輯了Eclipse項目屬性並添加了對core項目的引用。隨着一些fokugling(Maven的新功能),我能夠將Project1部署到我本地安裝的JBoss。我打開了WAR並在WEB-INF/lib文件夾中看到core-0.0.1-SNAPSHOT.jar被自動包含。

但我怎麼給SCM我的project1源也需要爲core源,而無需手動複製cores源到porject1s源。

我可以複製到core-0.0.1-SNAPSHOT.jarProject1他們也應該檢討我每次部署新的應用程序,因爲我可能會增加或調整了一些核心功能的時間cores源。

回答

1

您應該瞭解更多關於maven SNAPSHOT和版本庫的信息。然後安裝Nexus server作爲生成的罐子,戰爭,javadocs和源(稱爲工件)的目的地。

之後,也許你會對分階段部署選項的商業Nexus版本感興趣。 http://www.sonatype.com/people/2009/06/using-staging-repositories-for-deployment-in-nexus/

+0

不知道這是我正在尋找的選項... – jeff

+0

我建議您瞭解更多關於maven的信息。例如,在發佈的軟件包中包含SNAPSHOT版本是不好的風格。你的relases不應該是SNAPSHOT,但增加版本。 –

+0

http://stackoverflow.com/questions/5901378/what-exactly-is-a-maven-snapshot-and-why-do-we-need-it –

1

要解決包裝問題,您可以使用Maven Assembly Plugin。你可以在一個文件中擁有所有的源和依賴關係。

也許還有更適合你的需求的maven插件。