2011-08-01 41 views
1

我在這裏遇到了相當多的情況:另一個團隊正在構建一個Flex SDK,並將其作爲一個獨立的SWC文件集提供。在這一點上,我不能讓他們建立一個單一的SWC文件庫。導入「通配符」Maven項目依賴關係?

我試圖使用這些文件作爲Maven依賴關係傳遞給Flexmojos,但他們像40個文件,我不想管理他們每個人作爲一個單獨的依賴(畢竟他們是同一件事的一部分)。

有沒有一種辦法:

  1. 安裝所有的SWC文件作爲本地回購文物? (具有相同的groupId和版本,我猜是自動生成的artifactId)
  2. 使用「通配符」或插件在運行時生成依賴關係或其他東西,將這些作爲依賴關係導入?

回答

2

這不會那樣工作。依賴聲明不能是動態的,這會破壞構建。你可以做的是讓你的部署者創建一個包含pom包含所有SWC依賴項的彙總pom,並將該pom部署到你的nexus存儲庫中。你將能夠使用該pom依賴。好處是,pom保持在一箇中心位置。

+0

這也是我所懷疑的。 好的,那麼我如何構建一個在運行時修改POM的插件?我看到MavenProject的接口允許通過setDependencies進行動態依賴註冊。 – olygofren

+0

pom的動態修改不是一個好主意,也不會起作用,並會打破構建的可重複性。 – khmarbaise

+0

那麼,你可以使用['getDependencies()']從Model類中獲取所有代碼(http://www.grepcode.com/file/repo1.maven.org/maven2/org.apache.maven/maven-model /3.0.3/org/apache/maven/model/ModelBase.java#ModelBase.addDependency%28org.apache.maven.model.Dependency%29)並添加你自己的。我認爲Maven的開發人員會爲此拍掌。你應該在Maven用戶列表上發佈這個。 –

-1

您可以使用build-helper-maven-plugin將工件添加到Flex SDK項目。因此,您可以使用SDK項目作爲依賴項並獲取可以使用的所有文件。

+0

Karl-Heinz,這也不管用,imho。他希望它完全動態地脫離代碼。 –