如果目標機器上沒有安裝maven,是否可以運行mvn命令?我知道這是一個奇怪的。如果在目標機器上沒有安裝maven,如何運行mvn
這是可能使用一些包裝工具/實用工具內置maven/etc工具內置在包裝工具/工具?
這就是我想要實現的。使用Ansible(和Maven)從遠程Artifactory服務器獲取給定文件夾的工件。
- 我想從Artifactory下載一個工件。
- 目標機器沒有安裝maven(mvn)。
如果我創建一個小的一個班輪外殼腳本,那麼我必須逐個處理所有的存儲庫,即按照某種順序處理(即首先查看發行版回購,然後下載到快照等,反之亦然)。
(wget的http://myArtifactoryServer:somePort/artifactory/libs-snapshot-local/com/company/product/artifactName/version/artifactNameVersion.extension || wget的http://myArtifactoryServer:somePort/artifactory/libs-stage-local/com/company/product/artifactName/version/artifactNameVersion.extension || wget的http://myArtifactoryServer:somePort/artifactory/libs-alpha-local/com/company/product/artifactName/version/artifactNameVersion.extension || wget的http://myArtifactoryServer:somePort/artifactory/libs-beta-local/com/company/product/artifactName/version/artifactNameVersion.extension || wget的http://myArtifactoryServer:somePort/artifactory/libs-gamma-local/com/company/product/artifactName/version/artifactNameVersion.extension || wget的http://myArtifactoryServer:somePort/artifactory/libs-release-local/comcompany/product/artifactName/version/artifactNameVersion.extension)
我在想,如果有我可以抓住一個假象任何其他最簡單的方法只是給出了「虛擬回購名稱」,即libs-release(我已經創建並查看了所有物理髮布回購或僅使用company-repos虛擬,這樣我就不必使用||或一個一個地命名每個回購名稱wget的)。
如果還有其他方法,我不必使用wget。 Maven會自動在所有repos(你在settings.xml或pom.xml中定義的內容或者在命令行maven-dependency-plugin:get/copy中定義的內容)中自動找到工件和搜索。
我也可以在groovy中編寫代碼, groovy必須在目標服務器上。
你可能會對gradle這個看看。關於這個主題的好處是,你可以用一個gradle包裝器的shell腳本和必要的gradle二進制文件來運送它。目標環境不需要安裝Gradle。 Gradle還可以正確處理存儲庫等。看看[這裏](http:// gradle。org/docs/current/userguide/gradle_wrapper.html)。 – u6f6o
我不是百分百肯定你想要達到的目標。 [Capsule](https://github.com/puniverse/capsule)是一個用於構建可執行JAR的項目,它還支持從Maven倉庫下載依賴項。 –
你也可以使用[Maven wrapper](https://github.com/takari/maven-wrapper)。但是,爲什麼不通過Maven創建一個包含所有東西的tar.gz壓縮文件,並只下載tar.gz文件? – khmarbaise