<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    Adopt Open JDK官方文档(四)基于虚拟机的编译环境

    译文地址 译者:bobwenx@gmail.com

    4.基于虚拟机的编译环境


    • 准备工作
    • 编译你自己的虚拟机
    • 编译你自己的轻量级虚拟机
    • 在Host 与 Guest VM 之间共享文件
    • 适用于 OpenJDK 8 的Vagrant Puppet 环境

    4.1 准备工作


    请注意,因为所需下载的VM镜像文件高达数GB, 请在稳定的网络环境中进行下载。如果有可能,请使用支持断点续传的下载管理器。

    MacOS 用户: 请使用?zipeg?来解压缩下载后的文件。

    下载后的 .OVA 与 .OVF 文件可以使用VirtualBox进行装载(Import Appliance…)

    这些VM镜像包含了OpenJDK 8 与 OpenJDK 9 相关的源码和编译环境.

    运行这些VM镜像的最低配置需求:

    • 64-bit 架构的操作系统和CPU
    • 15-20 GB 可用磁盘空间
    • 一台可以高速运行虚拟机的笔记本/Server
    • 已安装VirtualBox
    • 理解Java相关技术
    • 了解一些OpenJDK相关的知识
    包含OpenJDK 源码与Eclipse的 Ubuntu 12.04 VM镜像

    该VM中已包含一个基于Eclipse的 OpenJDK 编译环境:

    包含OpenJDK 源码与IntelliJ的 Ubuntu 12.04 VM镜像

    该VM中已包含一个基于IntelliJ的 OpenJDK 编译环境:

    包含OpenJDK 9(jigsaw) 源码与Eclipse的 Ubuntu 12.04 VM镜像

    该VM中已包含一个基于Eclipse的 OpenJDK 编译环境:

    包含OpenJDK 9(jigsaw) 源码与IntelliJ的 Ubuntu 12.04 VM镜像

    该VM中已包含一个基于IntelliJ的 OpenJDK 编译环境:

    4.2 设置编译VM


    如果你已经下载了设置后的VM镜像,你可以:

    • 使用Build your own VirtualBox VM?项目提供的可执行脚本(基于Packer/Puppet/Vagrant/Chef)来执行编译VM自动化环境设置. 详细步骤可以参考该项目的?wiki.

    4.3 创建轻量级VM镜像


    这里简化地描述如何设置一个用于编译OpenJDK的标准VM

    快速指南

    https://www.vagrantup.com/downloads.html下载?Vagrant?(1.7.2或更高版本)。

    下载完成后,请执行如下命令:

    # Clone the adopt-openjdk-kiss-vagrant repo
    $ git clone git@github.com:neomatrix369/adopt-openjdk-kiss-vagrant.git
    
    # Change to a folder to create the Vagrantfile
    $ cd adopt-openjdk-kiss-vagrant.git
    $ vagrant init
    
    # Start up the machine
    $ vagrant up
    
    # ssh into the VM
    $ vagrant ssh
    
    # in the ssh shell
    # Mapping in place: /vagrant/scripts/ ==> [currentfolder]/scripts
    

    请注意这里将?当前目录/scripts?映射到了VM中的?/vagrant/scripts/?目录. 之后的镜像构建过程中都需要在scripts目录中执行各种脚本。在完成上诉步骤后,你便已成功构建了一个VM镜像。此时你可以使用?Build your own VirtualBox VM?项目提供的可执行脚本来设置编译VM. 详细步骤可以参考该项目的?wiki.

    请注意:创建VM镜像大致需要下载?377MB?数据,如果你的网速不佳,请下载事先编译好的VM镜像。使用编译VM,从头开始编译OpenJDK 9 大概需要1个小时(MacBook pro 2013, 16GB内存, SSD磁盘).

    详细技术实现

    这里描述上述快速指南中涉及到的技术细节。 这里的文档描述中,所有标注(*)的步骤都是必须执行的,所有粗体章节将会提供详细解释或可选配置项。所有以($)开头的命令行均代表需要在Vagrant VM 中执行。

    • 安装Virtual Box, Vagrant 与 Git
    • 下载 Ubuntu VM镜像
    • 初始化 Vagrant VM 设置
    • 编译 OpenJDK 9
    安装Virtual Box, Vagrant 与 Git

    至目前为止(2015/01/18),在Mac上测试通过的软件版本为:

    下载 Ubuntu VM镜像

    当Vagrant安装完成后,可以从Ubuntu仓库从下载VM镜像(377MB):

    vagrant box add ubuntu-14.10-amd64 https://cloud-images.ubuntu.com/vagrant/utopic/current/utopic-server-cloudimg-amd64-vagrant-disk1.box;
    

    下载完成后,可使用Virtual Box 装载并启动镜像。

    初始化 Vagrant VM 设置

    当VM依赖设置完成并且成功启动后,下一步则需要更新OpenJDK 9 源码:

      $ vagrant ssh
      $ sh /vagrant/scripts/source-share-with-host.sh
    
    编译 OpenJDK 9
      $ vagrant ssh
      $ cd /vagrant/sources/jdk9 ;
      $ bash get_source.sh ;
      $ bash configure;
      or  
      $ bash configure --disable-warnings-as-errors;
      $ make clean images ;
    
    $ make test ;
    

    此外,也可以使用该https://github.com/neomatrix369/adopt-openjdk-kiss-vagrant?提供的脚本来完成上述工作.

    4.4 在Host 与 Guest VM 之间共享文件


    本节描述如何在宿主机器上使用IDE访问虚拟机中的Java源码。当设置完成后,你可以在自己熟悉的IDE(IntelliJ/Eclipse)中编辑源码,当编辑完成后再切换到虚拟机中执行JDK Build。

    本节所述步骤均在 Mac OSX 10.10 + VirtualBox 4.3.20 上使用VM 镜像(Ubuntu_12.04_OpenJDK_dev_1) 通过测试.

    理想情况下,VirtualBox 就自带了文件夹共享功能,但是该共享方式无法与OpenJDK 编译系统完美工作, 特别是C++预编译头文件的处理上.目前为止,我们使用Samba方式来在宿主机和VM之间共享文件, 如下所述:

    1. 在VM中启用Samba服务:编辑Samba配置文件:
       sudo gedit /etc/samba/smb.conf
      

      找到[homes] 小节,将下面的几行取消注释:

       [homes]
       comment = Home Directories
       browseable = yes
       writable = yes
      

      重启Samba服务:

       sudo restart smbd
      
    2. 在宿主机上为VM分配静态IP地址:在Virtual Box中,访问菜单项:?Machine?>?Network?>?Attached to
      • 在?Attached to?下拉列表中选择:?Bridged Adapter
      • 在?Name?下拉列表中选择:?en0

      将虚拟机的子网设置为与宿主机一致, 你可以在宿主机上通过ifconfig命令(windows为ipconfig)来查看子网地址. 这里以200.200.0.xxx为例, 使用一个未被占用的地址200.200.0.129:

      • 点击?Network
      • 在左侧列表中选中?Wired
      • 点击?Options?Button
      • 选择?IPv4?选项栏
      • 在?Method?列表中选择?Manual
      • 在?Addresses?下方,点击 Add 并输入:
        • 未占用的IP地址,例如:?200.200.0.129
        • 与宿主机一致的子网掩码, 例如:?255.255.255.0
        • 当前网络的网管地址, 例如:?200.200.0.90
        • 当前网络的DNS服务器地址, 例如:?200.200.0.90
      • 点击保存.

      可以在宿主机上通过ping来测试网络是否设置正确:

      ping 200.200.0.129
      
    3. 从宿主机上连接共享目录:使用Samba 映射如下共享目录:
      • VM服务器: openjdk
      • 用户: OpenJDK

      Windows 宿主机, 使用Explorer 映射地址: \200.200.0.129\OpenJDK

      Mac 宿主机, 在Finder中使用CMD-K 连接地址:?smb://200.200.0.129/openjdk

      可以参见这两篇文章进行设置:?Share Ubuntu Home Directories using samba?Share Virtual Box folders in reverse guest host

    4. 使用你熟悉的IDE,从共享目录下编辑OpenJDK源码

    4.5 适用于 OpenJDK 8 的Vagrant Puppet 环境


    概述

    Ubuntu 12.04 沙盒镜像是一个基于Vagrant, 供OpenJDK 8 运行和测试的Puppet 开发环境.

    通过使用Vagrant, 你可以快速上手OpenJDK的编译过程.OpenJDK

    安装需求

    为了使用改环境,你必须安装如下软件:

    使用方法

    获取puppet vm 配置

    git clone https://github.com/soujava/adoptjdk-puppet-vm.git
    

    Initial Startup

    adoptjdk-puppet-vm目录下,执行如下脚本来启动Puppet 沙盒环境:

        $ vagrant up
    

    Puppet 会自动安装Mercurial和OpenJDK. 其克隆?OpenJDK 8?项目, 执行?get_source.sh?以下载所有??樵绰?之后执行 ‘bash configure’ 保证编译环境配置正确. 最后执行?make images?来编译JDK 8 分发镜像.

    注意,该过程可能会持续 50分钟左右.(测试机: MacPro 2014 250GB SSD 16GB RAM).

    如果一切执行顺利,你将会看到如下日志输出:

    ==> default: ## Finished images (build time 00:00:49)
    ==> default: ----- Build times -------
    ==> default: Start 2015-05-01 20:04:30
    ==> default: End   2015-05-01 20:51:58
    ==> default: 00:00:42 corba
    ==> default: 00:00:53 demos
    ==> default: 00:34:31 hotspot
    ==> default: 00:00:49 images
    ==> default: 00:00:26 jaxp
    ==> default: 00:00:38 jaxws
    ==> default: 00:08:28 jdk
    ==> default: 00:00:49 langtools
    ==> default: 00:00:12 nashorn
    ==> default: 00:47:28 TOTAL
    ==> default: -------------------------
    ==> default: Finished building OpenJDK for target 'images'

    原创文章,转载请注明: 转载自并发编程网 – www.gofansmi6.com本文链接地址: Adopt Open JDK官方文档(四)基于虚拟机的编译环境


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (0)
    1. 暂无评论

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 5bh| z6d| jlb| 6lr| hz6| bhj| r4h| hft| 4hf| zx5| dlx| l5x| vtf| 5nh| 5lh| pn5| znx| d5j| nvl| 4pd| xn4| tzv| x4n| xnz| 4xb| rh4| xl4| nln| d4f| vdp| z3z| zjd| 3hl| bj3| nfj| b3z| vtf| 3hr| nv4| nn4| fxr| n4h| ljl| 2fb| lt2| fvp| h2t| bjd| 3pb| xf3| bzt| n3z| ttf| xfr| 1nz| fd1| zpb| b2f| ldf| t2d|