2013-08-22 25 views
2

短:鑑於(groupId,artifactId,版本,存儲庫URL)是否可以通過編程方式讓Maven解析工件URL?以編程方式解決Maven工件URL

長:鑑於(groupId,artifactId,版本,存儲庫URL),可以下載一個Maven工件。通常情況下,URL到神器的樣子:

方案:// {資料庫}/{的groupId}/{的artifactId}/{版本}/{}的artifactId - {}版本的.jar

對於(ORG。 apache.maven,行家核,3.0.0,http://repo.maven.org/maven2),僞影URL解析爲:

http://repo.maven.org/maven2/org/apache/maven/maven-core/3.0.0/maven-core-3.0.0.jar

使用上述推斷的圖案,我可以使用字符串串聯以產生僞像URL對於任何給定( groupId,artifactId,版本,存儲庫URL)。不過,我不想依賴這種推斷模式,因爲它可能會在將來版本的Maven中發生變化。

我可以以編程方式讓Maven解析給定的工件URL(groupId,artifactId,版本,存儲庫URL)嗎?

回答

1

ivy這樣的東西會更容易嵌入你建議的方式。常春藤可以使用與maven相同的佈局,也可以使用自定義佈局。

+0

常春藤是嵌入在應用程序中解決Maven工件的好方法。也可以嵌入Maven本身,但驅動Maven處理下載的代碼最終比Ivy複雜得多。我嘗試了兩種方法,並最終堅持常春藤。 – rec

1

許多Maven存儲庫都有一個可用於搜索工件的API。例如,中央Maven存儲庫有一個,文檔爲here

爲了您的例子中,中央資源庫的API提供了以下網址直接鏈接到搜索:

http://search.maven.org/#search|ga|1|g:"org.apache.maven" AND a:"maven-core" AND v:"3.0"

而下面的URL返回XML數據(或JSON,通過改變最後參數):

http://search.maven.org/solrsearch/select?q=g:"org.apache.maven" AND a:"maven-core" AND v:"3.0"&wt=xml

在這種情況下,你仍然必須創建手動JAR的URL(或刮它的搜索結果),但其他存儲庫(李ke Nexus)直接在API結果中提供。

相關問題