2016-04-29 111 views
1

我的項目依賴於一堆不在Maven倉庫中的jar文件。我可以將它們聲明爲文件依賴關係,但我寧願使用Gradle的依賴關係管理器,所以我需要將它們安裝到本地Maven存儲庫。Gradle:安裝一堆jar到本地Maven倉庫

我正在考慮編寫一個任務,比如說「installFiles」,並讓「compileJava」依賴於它,因此它將首先運行,並且這些依賴將在編譯之前出現在本地Maven存儲庫中。然後我將它們聲明爲正常的外部模塊依賴關係,以便Gradle的依賴關係管理器可以處理它們。

我的問題是,我如何安裝一堆瓶子到本地Maven倉庫?我發現的所有文檔都只是討論安裝當前項目的結果,而不是一些任意的jar。

回答

1

只需按照Gradle Documentation

在這裏爲方便起見報價:

apply plugin: "maven-publish" 

publishing { 
    publications { 
    maven(MavenPublication) { 
     artifact 'my-file-name.jar' // Publish a file created outside of the build 
    } 
    } 
} 
+0

OP不詢問從項目產生的工件。 – RaGe

+0

OP的問題在確切的鏈接段落 – Vampire

+0

回答我很抱歉。你是對的。 – RaGe

0

你在哪裏得到這些任意罐子?你在哪裏可以得到他們的POM信息,如moduleId,groupID,版本等?

您可以創建一個gradle任務來構建POM,然後發佈到maven repo,但我認爲一個更簡單的解決方案就是使用maven進行初始發佈。你可以只運行此命令的Maven

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ 
    -Dfile=path-to-your-artifact-jar \ 
    -DgroupId=your.groupId \ 
    -DartifactId=your-artifactId \ 
    -Dversion=version \ 
    -Dpackaging=jar \ 
    -DlocalRepositoryPath=path-to-specific-local-repo 

如果跳過最後一個參數,神器將發佈到默認的Maven的settings.xml中聲明的局部回購

Reference

的事情情侶,你應該在做這件事情時想想:

  1. 您的構建僅在您的本地計算機上有效。由於您推送到本地回購的罐子對於您的構建設置而言是獨一無二的,因此您的項目不再可移植。

  2. 如果您的罐子具有自己的依賴關係,上面的答案不會在POM中生成該信息,您必須將其添加到自己或者在下游項目中手動管理傳遞依賴關係。

相關問題