在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何用源码分析Compile

155次阅读
没有评论

共计 2204 个字符,预计需要花费 6 分钟才能阅读完成。

如何用源码分析 Compile,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

bin/compile

入口是:bin/compile,该脚本和 detect 脚本很类似:需要一个构建目录实例化 buildpack 对象,并调用其 compile 接口。

注意:在这个脚本看似只有一个参数,但运行时实际需要第二个参数:应用缓存目录,当下载 JDK,

compile 方法

compilempilecompile 先调用 component_detection,探测了对容器,JRE,framework 的支持情况,并依次调用 JRE 的编译,每个框架的编译,和容器的编译。

Ruby 代码  如何用源码分析 Compile

def compile 

 puts BUILDPACK_MESSAGE % @buildpack_version 

 container = component_detection(container , @containers, true).first 

 fail  No container can run this application  unless container 

 component_detection(JRE , @jres, true).first.compile 

 component_detection(framework , @frameworks, false).each(:compile) # 调用每一个框架的编译  

 container.compile 

end 

 component_detection 返回的是 component,如 JRE 的 component_detection 返回的是 JavaBuildpack::Jre::OpenJdkJRE。

JRE 的编译

JRE 编译调用的是 JavaBuildpack::Jre::OpenJdkJRE 的 compile,而 JavaBuildpack::Jre::OpenJdkJRE 又是继承自 OpenJDKLike,因此追溯到 OpenJDKLike 的 compile

Ruby 代码  如何用源码分析 Compile

def compile 

 download_tar 

 @droplet.copy_resources 

end 

  可以看到编译就干了两件事:

下载 Jdk 的包,拷贝 resources,即:拷贝 resources/open_jdk_jre 下面的文件

Tomcat 的编译

容器的编译调用了 JavaBuildpack::Container::Tomcat 的 compile,方法是定义在其父类:JavaBuildpack::Component::ModularComponent

Java 代码  如何用源码分析 Compile

def compile 

 @sub_components.each(:compile) 

end 

  即调用其子组件的编译,子组件包括:TomcatInstance,TomcatLifecycleSupport,TomcatLoggingSupport,TomcatAccessLoggingSupport,TomcatRedisStore,TomcatInsightSupport。

TomcatInstance 的 compile 方法

该 compile 方法完成了三件事:

1. 下载 tomcat 的包;

2. 在 tomcat 的 webapps/WEB-INF/ROOT 中链接用户应用根目录;

3. 链接 jar 包到 WEB-INF/lib

Ruby 代码  如何用源码分析 Compile

def compile 

 download(@version, @uri) { |file| expand file } 

 link_to(@application.root.children, root) 

 @droplet.additional_libraries   tomcat_datasource_jar if tomcat_datasource_jar.exist? #  追加数组的意思  

 @droplet.additional_libraries.link_to web_inf_lib 

end 

TomcatLifecycleSupport 的 compile 方法

该方法只是下载了 tomcat_lifecycle_support 的 jar 包

Ruby 代码  如何用源码分析 Compile

def compile 

 download_jar(jar_name, tomcat_lib) 

end 

 TomcatLoggingSupport,TomcatAccessLoggingSupport 的 compile 方法都只是下载了相应的 jar 包

TomcatRedisStore 的 compile 方法

先检查了是否需要 redis 做 session 共享中间件,接着下载了 redis_store.jar 包,并修改 tomcat 的 conf/context.xml 配置

Ruby 代码  如何用源码分析 Compile

def compile 

 return unless supports? 

 download_jar(jar_name, tomcat_lib) 

 mutate_context 

end 

从源码来看,compile 并非是编译 java 的源代码,而是准备应用运行的环境。

关于如何用源码分析 Compile 问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2204字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久日本精品国产精品白 | 色哟哟哟在线精品观看视频 | a级国产乱理论片在线观看 a级国产片 | 在线观看91视频 | 国产亚洲美女精品久久久2020 | 国产精品任我爽爆在线播放66 | 玖玖精品在线视频 | 亚洲午夜顶级嘿嘿嘿影院 | 国产性生交xxxxx无码 | 国产一级精品高清一级毛片 | 亚洲成a人不卡在线观看 | 成人午夜动漫在线观看 | 亚洲人成网77777色在线播放 | 国产一级淫片a视频免费观看 | 插我舔内射18免费视频 | 免费激情小视频 | www色婷婷 | 午夜影院在线免费观看 | 人妻av中文字幕一区二区三区 | 狠狠综合亚洲综合亚洲色 | 国产成人精品一区二区免费视频 | 国产三级在线视频播放线 | 亚洲精品乱码久久久久久蜜桃不卡 | 一区二区不卡在线 | 久久久久久久久蜜桃 | 一本一道久久综合久久 | 欧美一级大黄特黄毛片视频 | 亚洲免费在线视频观看 | 亚洲色欲久久久久综合网 | 91麻豆精品 | 日韩精品视频一区二区三区 | 久久精品无码精品免费专区 | 亚洲中文字幕无码一区二区三区 | 欧美激情欧美狂野欧美精品免费 | 欧美精品99毛片免费高清观看 | 亚洲国产精品无码专区影院 | 久久精品入口麻豆 | 超黄视频网站 | 亚洲人成未满十八禁网站 | 亚洲av无码av男人的天堂不卡 | 亚洲中文久久精品无码 |