使用xmake优雅地描述工程】的更多相关文章

描述语法 xmake的描述语法基于lua实现,因此描述语法继承了lua的灵活性和简洁性,并且通过28原则,将描述作用域(简单描述).脚本作用域(复杂描述)进行分离,使得工程更加的简洁直观,可读性非常好. 因为80%的工程,并不需要很复杂的脚本控制逻辑,只需要简单的几行配置描述,就可满足构建需求,基于这个假设,xmake分离作用域,使得80%的xmake.lua文件,只需要这样描述: target("demo") set_kind("binary") add_file…
微信号:geekoftaste, 期待与大家一起探讨! 背景 我们知道 SpringBoot 有一个全局的配置文件 application.properties, 可以把工程里用到的占位符,第三方库的配置项如 dubbo 端口,工程的 db 配置等统一放在这个配置文件里,方便对工程里所有配置项的统一管理.我们知道,在企业开发中,我们一般会先在测试环境中开发,在预发环境环境,最后上生产环境部署,也就意味着一个工程需要分别部署在测试,预发,生产环境上,而这三种环境的一些配置项(如测试环境和生产环境的…
前言 在开发xmake之前,我一直在使用gnumake/makefile来维护个人C/C++项目,一开始还好,然而等项目越来越庞大后,维护起来就非常吃力了,后续也用过一阵子automake系列工具,并不是很好用. 由于C/C++程序的构建过程比较繁琐,如果不借助IDE工具,很难快速构建一个新的C/C++程序,想要跨平台构建就更加麻烦了. 虽然IDE很好用,也很强大,但是还是有很多不足的地方,例如: 跨平台开发支持不完善 自身环境不一定跨平台 过于臃肿 不利于服务端自动化部署构建 不够灵活,定制化…
XMake 是什么 XMake 是一个基于 Lua 的 现代化 C/C++ 构建系统. 它的语法简洁易上手,对新手友好,即使完全不会 lua 也能够快速入门,并且完全无任何依赖,轻量,跨平台. 同时,它也是一个自满足的构建系统,拥有强大的包管理系统,快速的构建引擎. 相比 Ninja/Scons/Make 作为 Build backend,CMake/Meson 作为 Project Generator,那么 XMake 就是这两者外加一个包管理. xmake = Build backend +…
第一部分:classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class. eclipse build path是eclipse工程里需要的包,也是需要的class,本质上没什么区别. 你可以测试,比如JDK中有个String类,在java.lang中,那么你自己声明一个别的包,类叫String,然后打个jar包,将这个jar包所在的路径复制到classpath中,在系统的那个String前,这时候你在用Strin…
第一部分:classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class. eclipse build path是eclipse工程里需要的包,也是需要的class,本质上没什么区别. 你可以测试,比如JDK中有个String类,在java.lang中,那么你自己声明一个别的包,类叫String,然后打个jar包,将这个jar包所在的路径复制到classpath中,在系统的那个String前,这时候你在用Strin…
.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH .classpath 文件从数据上我们容易看出,上面描述了工程的依赖文件: 源文件的具体位置(kind="src") 运行的系统环境(kind="con") 工程的library的具体位置信息(kind="lib") 在每个lib的xml子节点中,有关于它的其它配置…
以前一直是用maven去管理java项目,现在开始写scala项目了但是在scala-ide中去编译scala项目和sbt的区别一直没弄清楚受到文章:http://my.oschina.net/yjwxh/blog/601566的启发,查了相关的资料 sbt官网是http://www.scala-sbt.org/官网的文档对中文特别友好,有中文版本的,但是看了一遍感觉很难接受这么复杂的配置方法sbt是一种构建工具,在eclipse-ide中并没有集成下载安装msi之后,在默认路径出现了/bin和…
.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH .classpath 文件从数据上我们容易看出,上面描述了工程的依赖文件:源文件的具体位置(kind="src")运行的系统环境(kind="con")工程的library的具体位置信息(kind="lib")在每个lib的xml子节点中,有关于它的其它配置信息(例…
熟悉使用Git之后发现,使用sourceTree来管理和开发项目会变得更高效,现在我用bitbucket管理自己的项目,它提供了私有的仓库,用起来还是比较爽,不过刚开始用的时候,只要一打开本地仓库的工程,就会修改一个缓冲文件,然后在sourceTree很不智能的提示项目改动,无奈右键ignore文件,但是后来发现这样太不优雅了,每次工程都要右键N多个文件,寻思着一定会有优雅的方式解决..于是各种折腾...最后找到解决办法了. 第一步要找到一个 .gitignore_global 的配置文件,在~…