• maven-编译速度优化


    故障描述:

      公司搭建了一个新jenkins持续集成环境,jenkins构建job时间越来越长。

    原因分析及解决:

    •   系统CPU限制:判断依据,构建中查看日志 tail -f /var/log/messages 是否有 “Package power limit normal”
      •   如果是mac机器:系统偏好设置>拓展程序>所有,反选所有你不需要的拓展。然后进入系统偏好设置>节能,在更长续航和更高性能中勾选后者,完成后重启计算机
    •   设置java内存:-Xms800m -Xmx800m -XX:MaxNewSize=512m  -XX:MaxPermSize=512m
      • 如果需要是堆内存不够,则设置最大堆大小-Xmx,如果是持久代溢出,比如出现PermGen space异常,则设置-XX:MaxPermSize即可
      •  set MAVEN_OPTS= -Xms800m -Xmx800m -XX:MaxNewSize=512m  -XX:MaxPermSize=512m
    •   增加跳过测试代码的编译命令: -Dmaven.test.skip=true 
    •   指明多线程进行编译:-Dmaven.compile.fork=true
    •   增加CPU核心参数:-T 1C 
      • Maven是3.×以上版本支持
    •   远程仓库慢:增加带宽
      •   该问题只会在第一次同步远程jar的时候较多
    •   achetype-catalog.xml文件的访问问题:
      •   achetype-catalog.xml记录了所有archetype构建信息,maven通过archetype插件构建项目骨架时会远程访问页面,通过maven的-X参数可以证明这一点。
        • [DEBUG] -- end configuration --  
          [INFO] Generating project in Batch mode  
          [DEBUG] Searching for remote catalog: http://repo1.maven.apache.org/maven2/archetype-catalog.xml   
      • 网络慢的情况下访问该文件非常消耗时间,翻阅Maven官方文档可以找到能够将文件保存到本地,成为一种解决思路。
        •   http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html   
        • 1)准备archetype-catalog.xml文件
            方式1:通过浏览器查看http://repo1.maven.org/maven2/archetype-catalog.xml页源码,复制到本地,命名为archetype-catalog.xml。
            方式2:通过命令行  curl http://repo1.maven.org/maven2/archetype-catalog.xml > archetype-catalog.xml
          2)将上述文件放置到maven的默认路径下
              注意,这不是指的安装路径,而是mvn运行时默认的存放repository的路径,一般在用户根目录下的一个隐藏目录,~/.m2。如果做过更改,可以在maven的设置文件中查看
          具体在哪个位置,设置文件在maven安装目录/config/settings.xml中。 3)在构建时,在archetype:generate后加上 -DarchetypeCatalog=local参数。
        •   

           

            
      • 调整仓库顺序:settings中  把 “本地仓库” 和 “Maven Central” 仓库放到前两位 其他也按用到的多少排列
      •   maven国内镜像:同公司保持一致。
  • 相关阅读:
    Android开发 ViewConfiguration View的配置信息类
    Android 开发 倒计时功能 转载
    Android 开发 关于7.0 FileUriExposedException异常 详解
    Android 开发 实现文本搜索功能
    Android 开发 Activity里获取View的宽度和高度 转载
    Android 开发 存储目录的详解
    Android 开发 Fresco框架点击小图显示全屏大图实现 ZoomableDraweeView
    Android 开发 将window变暗
    Android 开发 DisplayMetrics获取Android设备的屏幕高宽与其他信息
    Android 开发 DP、PX、SP转换详解
  • 原文地址:https://www.cnblogs.com/YatHo/p/7233194.html
Copyright © 2020-2023  润新知