2015-06-22 62 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> 

如果您没有访问存储库管理,您可以上传安装我没有别的想法,而不是做你写,并创建自己的项目,并确保它安装在你的本地库在构建程序集之前。