项目构建工具Typhoon Blade、Maven Assembly Plugin、Launch4j Maven Plugin介绍

以下为你介绍的项目构建工具都可用在Linux系统上:Typhoon Blade(改名为 blade-build,现代构建系统)、Maven Assembly Plugin(Maven 的 Assembly 插件)、Launch4j Maven Plugin(Maven 的 Launch4j 的插件)。

1、Typhoon Blade(改名为 blade-build,现代构建系统)

项目构建工具Typhoon Blade、Maven Assembly Plugin、Launch4j Maven Plugin介绍

注:仓库名从 typhoon-blade 改名为 blade-build。

Blade 是一个现代构建系统,期望的目标是强大而好用,把程序员从构建的繁琐中解放出来。

Blade主要定位于linux下的大型C++项目,密切配合研发流程,比如单元测试,持续集成,覆盖率统计等。但像unix下的文本过滤程序一样,保持相对的独立性,可以单独运行。目前重点支持i386/x86_64 Linux,未来可以考虑支持其他的类Unix系统。

为了解决 GNU Make,Autotools 的难用和繁琐的问题,我们开发了一个构建系统,整个系统基于多个声明式的构建脚本,在构建脚本里,只需要声明要构建什么目标,目标的源代码,以及其直接依赖的其他目标,不需要说明如何构建。

一行命令,编译连接单元测试就可以全部搞定。

特点:

自动分析头文件依赖关系,构建受影响的代码。

增量编译和链接,只构建因变更受影响而需要构建的。

自动计算库的间接依赖,库的作者只需要写出直接依赖,构建时自动检查所依赖的库是否需要重新构建。

在任意代码树的任意子目录下都能构建。

支持一次递归构建多个目录下的所有目标,也支持只构建任意的特定的目标。

无论构建什么目标,这些目标所依赖的目标也会被自动连坐更新。

内置 debug/release 两种构建类型。

彩色高亮构建过程中的错误信息。

支持 ccache。

支持 distcc。

支持基于构建多平台目标。

支持构建时选择编译器(不同版本的gcc,clang等)。

支持编译 protobuf、lex、yacc、swig。

支持自定义规则。

支持测试,在命令行跑多个测试。

支持并行测试(多个测试进程并发运行)。

支持增量测试(无需重新运行的测试程序自动跳过)。

集成 gperftools,自动检测测试程序的内存泄露。

构建脚本 vim 语法高亮。

svn 式的子命令命令行接口。

支持 bash 命令行补全。

用 Python 编写,无需编译,直接安装使用。

彻底避免以下问题:

头文件更新,受影响的模块没有重新构建。

被依赖的库需要更新,而构建时没有被更新,比如某子目录依赖遥远的某外部目录的代码,我在这个目录构建,外部目录的代码会被自动检查是否也需要重新构建。

下载地址:https://github.com/chen3feng/blade-build

2、Maven Assembly Plugin(Maven 的 Assembly 插件)

Maven的Assembly Plugin主要用于允许用户将项目输出及其依赖项,模块,站点文档和其他文件聚合到一个可分发的存档中。

您的项目可以使用便捷的预制装配体描述符之一轻松构建分发“assemblies”。这些描述符处理许多常见的操作,例如将项目的工件以及生成的文档打包到单个zip存档中。另外,您的项目可以提供自己的描述符,并可以对程序集中的依赖项,模块,文件集和单个文件的打包方式进行更高级别的控制。

如果您的项目想要将工件打包在uber-jar中,则Assembly插件仅提供基本支持。要进行更多控制,请使用Maven Shade插件。

要在Maven中使用Assembly插件,您只需要:选择或编写要使用的程序集描述符,在项目的pom.xml中配置程序集插件,然后在您的项目上运行“mvn assembly:single”。

下载地址:http://maven.apache.org/plugins/maven-assembly-plugin/

3、Launch4j Maven Plugin(Maven 的 Launch4j 的插件)

顾名思义,这是 Maven 的 Launch4j 的插件,用来提供在 Maven 直接将 Java 项目打包成可执行文件。

常见问题解答:

问:因为缺少dsol-xml依赖项,所以无法构建我的项目?

答:将此存储库添加到您的~/.m2/settings.xml:

<repositories>

<repository>

<id>dsol-xml</id>

<name>Simulation @ TU Delft</name>

<url>http://simulation.tudelft.nl/maven/</url>

</repository>

</repositories>

问:在哪里可以找到-SNAPSHOT版本?

答:使用Sonatype OSS repo:

<repositories>

<repository>

<id>sonatype-nexus-snapshots</id>

<name>Sonatype Nexus Snapshots</name>

<url>https://oss.sonatype.org/content/repositories/snapshots/</url>

<releases>

<enabled>false</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

问:我可以在64位操作系统上使用Launch4j吗?

答:是的,但是您必须安装以下库以避免出现问题:

lib32z1

lib32ncurses5

lib32bz2-1.0 (在旧版Ubuntu中为ia32-libs)

zlib.i686

ncurses-libs.i686

bzip2-libs.i686

下载地址:https://github.com/lukaszlenart/launch4j-maven-plugin

注明

以上就是项目构建工具Typhoon Blade、Maven Assembly Plugin、Launch4j Maven Plugin的介绍内容,这些项目构建工具都能使用在Linux操作系统中。

栏目相关文章