项目构建工具JBoss Build、Webpack、Togglz、Goop介绍

以下为你介绍的项目构建工具都可用在Linux系统上:JBoss Build(创建一个标准化和可维护的构建系统)、Webpack(模块打包器)、Togglz(Java 的特性切换实现)、Goop(Go 依赖管理器)。

1、JBoss Build(创建一个标准化和可维护的构建系统)

JBoss Build项目的目标是为JBoss项目创建一个标准化且可维护的构建系统,当前的工作是从现有的基于ant的构建系统迁移到基于maven的系统,以及随之而来的支持工具。

提供有Buildmagic Jar下载。

下载地址:https://jbossbuild.jboss.org/

2、Webpack(模块打包器)

项目构建工具JBoss Build、Webpack、Togglz、Goop介绍

注:以上是原理图。

webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。

特性:

打包 CommonJs 和 AMD 模块(以及绑定)。

可创建单个或多个按需加载的块,以减少初始加载时间。

在编译期间会解决依赖关系,减少了运行时的大小。

加载器可以在编译时预处理文件,如 coffee-script 到 javascript。

安装方法:

使用npm安装:

npm install --save-dev webpack

用yarn安装:

yarn add webpack --dev

示例代码:

// webpack is a module bundler

// This means webpack takes modules with dependencies

// and emits static assets representing those modules.

// dependencies can be written in CommonJs

var commonjs = require("./commonjs");

// or in AMD

define(["amd-module", "../file"], function(amdModule, file) {

// while previous constructs are sync

// this is async

require(["big-module/big/file"], function(big) {

// for async dependencies webpack splits

//  your application into multiple "chunks".

// This part of your application is

//  loaded on demand (Code Splitting)

var stuff = require("../my/stuff");

// "../my/stuff" is also loaded on demand

//  because it's in the callback function

//  of the AMD require

});

});

require("coffee!./cup.coffee");

// "Loaders" can be used to preprocess files.

// They can be prefixed in the require call

//  or configured in the configuration.

require("./cup");

// This does the same when you add ".coffee" to the extensions

//  and configure the "coffee" loader for /\.coffee$/

function loadTemplate(name) {

return require("./templates/" + name + ".jade");

// many expressions are supported in require calls

// a clever parser extracts information and concludes

//  that everything in "./templates" that matches

//  /\.jade$/ should be included in the bundle, as it

//  can be required.

}

// ... and you can combine everything

function loadTemplateAsync(name, callback) {

require(["bundle?lazy!./templates/" + name + ".jade"], 

function(templateBundle) {

templateBundle(callback);

});

}

下载地址:https://github.com/webpack/webpack

3、Togglz(Java 的特性切换实现)

项目构建工具JBoss Build、Webpack、Togglz、Goop介绍

Togglz 是 Java 的 Feature Toggles 模式实现。

Feature Toggles 是持续部署和交互中非常普遍的敏捷开发实践。Togglz 可以切换用户正在执行的各种新特性,在应用运行时允许启用或者禁用某些特性,即使对于个人用户也是支持的。

用例:

使用常规Java枚举类型声明功能:

public enum MyFeatures implements Feature {

@Label("First Feature")

FEATURE_ONE,

@Label("Second Feature")

FEATURE_TWO;

public boolean isActive() {

return FeatureContext.getFeatureManager().isActive(this);

}

}

检查当前用户是否启用了特定功能非常简单,只需在功能上调用isActive():

public void someBusinessMethod() {

if( MyFeatures.FEATURE_ONE.isActive() ) {

// do new exciting stuff here

}

[...]

}

下载地址:https://www.togglz.org/

4、Goop(Go 依赖管理器)

Goop 是 Go 语言一个简单的依赖管理器,其灵感来自于 Bundler。它与其他依赖项管理器的不同之处在于,它不会强迫您弄乱GOPATH。

其他命令:

运行goop update忽略现有的Goopfile.lock,并更新到软件包的最新版本(如Goopfile中所指定)。

运行eval $(goop env)将修改当前Shell会话中的GOPATH和PATH,从而使您无需goop exec即可运行命令。

警告:

Goop当前仅支持Git和Mercurial,在99%的情况下,这应该没问题,但我们非常欢迎提出请求,请多关注Goop项目主页,以增加对Subversion和Bazaar的支持。

下载地址:https://github.com/petejkim/goop

注明

以上就是项目构建工具JBoss Build、Webpack、Togglz、Goop的介绍内容,这些项目构建工具都能使用在Linux操作系统中。

栏目相关文章