2015-06-22 103 views
2

在項目中是否有可能將JVM作爲Maven依賴關係?JVM作爲Maven依賴關係

我問,因爲我有一個項目,輸出一個Maven Assembly,它由一個Vagrant項目組成,當Vagrant VM啓動時,該項目目前下載並安裝Java。這個Vagrant組裝項目純粹是通過測試使用的,這樣他們就可以運行Vagrant VM並快速運行服務,而不需要擔心每次在測試系統上都能正常工作。 JVM的下載量目前是虛擬機啓動時間的90%,所以如果我可以將它與程序集捆綁在一起,那麼它會更快。

我只需要一個特定的JVM - 32位Linux上的Java 7 - 但我無法解決是否有任何標準的方法來做到這一點。我可以建立自己的神器並以這種方式進行,但似乎這必須是其他人已經完成的事情。

+0

包含JVM並且在依賴項中具有作用域運行時的程序集項目?請注意,通常JVM不需要安裝來運行,目錄zip就足夠了。 –

+0

我認爲你可以從Maven做的唯一事情是通過'maven-compiler-plugin'(?)指定你想要編譯的代碼的語言級別。 – MadConan

回答

0

解決這個問題的最有效的方法是使用您需要安裝的特定版本的Java來創建一個Vagrant框。這樣你就可以完全跳過安裝過程。

如果您真的想按照您描述的方式進行操作,如果您使用存儲庫管理器(如Nexus或Artifactory),則可以將Java安裝文件上傳到存儲管理器,並配置組ID,工件ID和版本。然後你可以像這樣添加一個依賴項(如果你上傳一個rpm - 更改類型爲tar.gz,否則)。

<dependency> 
    <groupId>my.group.id</groupId> 
    <artifactId>jdk-install</artifactId> 
    <version>versionEnteredDuringUpload</version> 
    <type>rpm</type> 
</dependency> 

如果您沒有訪問存儲庫管理,您可以上傳安裝我沒有別的想法,而不是做你寫,並創建自己的項目,並確保它安裝在你的本地庫在構建程序集之前。