2012-09-07 56 views
1

我目前正在構建一個新的服務器來替換我們現有的實時系統,並利用oppertunity將所有系統更新到最新狀態。不幸的是,我們需要在交換機完成前幾個月並行運行這兩個系統作爲實時服務。在此期間,隨着服務器上運行的應用程序的開發正在進行,我們將每晚進行重建。正在運行Maven2和Maven3

我遇到的問題是,現有系統運行Maven 2,新系統運行Maven 3.目前,我們重建新服務器正在生成Maven警告(「[WARNING]'build.plugins.plugin .version'for org.codehaus.mojo:versions-maven-plugin is missing「)並且應用程序無法生成。

有沒有一種解決方案可以讓我解決這些警告,使得Maven 2和Maven 3都可以構建一切?由於開發基礎設施在Subversion中分支代碼不是一種選擇。

看看它建議將存儲庫定義移動到pluginrepository定義的一些文檔。我可以將存儲庫添加到pluginrepositories中,同時將它們留在存儲庫下,這會對Maven的任一版本造成問題嗎?還是有其他解決方案?

+1

警告不會破壞構建。似乎你沒有提到的東西。 – kan

+0

@kan完全缺失Maven插件會破壞構建,它們類似於ANT中缺少的任務,或者缺少Make中的命令行工具。 –

+0

@EdwinBuck他說警告「版本標記丟失」,這意味着插件在這裏,它的工作原理,但pom.xml沒有明確指定插件版本,所以使用隨機版本。然後他告訴我它沒有建立 - 我不相信它會因爲它而發生。 – kan

回答

0

Maven 3向後兼容,但更嚴格,所以如果您修復Maven 3的pom.xml,則不會破壞Maven 2的支持。

從我讀到的內容來看,你只需要使用明確的插件版本,而且可以很容易地完成,最好的做法是在項目中常見的父pom中的<pluginManagement>部分中完成。

+0

有一些事情,Maven 3做的不同,如果你爲Maven 3定製你的POM,Maven 2 build * may * break。有一點不同的是依賴關係被解決的方式。我發現要在Maven 2中構建,我不得不添加一些Maven 3中不需要的依賴項。 – Jonathan

+0

另一個問題是Maven 3中快照更改的唯一版本。如果需要,可能會出現一些問題部署快照工件,這些工件反過來被其他工件使用。我仍然無法弄清楚他們爲什麼改變它。帶來比任何事情都更多的麻煩,主要是在多個項目的連續構建中。 – Farid