ActiveMQ从源代码构建

众多开源项目。我们一般都是直接拿过来用之而后快。

只是我们也应该知道这些项目是怎样从源代码构建而来的。

既然代码是写出来的,就不能避免有BUG存在,话说没有完美的软件,也没有无漏洞的程序。

事实上从源代码构建。步骤不多,总的来说是件非常easy的事情。了解了这样一个过程,以后须要改动源代码或者在源代码之上进行二次开发也知道怎么把源代码构建成可运行程序,本文以ActiveMQ为例,简单概括一下怎样从源代码构建可应用程序。旨在抛砖引玉,为须要的同学们指个路。

由于近期项目中须要AMQ。所以又把AMQ翻出来用了,中间遇到点瓶颈问题,所以须要改动AMQ的源代码来解决。

AMQ分为持久化和非持久化。AMQ的持久化如今默认的为kahadb,也能够配置使用数据库来持久化。还有LevelDB。这是它眼下已经提供的几个能够直接配置的持久化方式。假设对AMQ进行过測试的同学应该都知道。AMQ假设配置了持久化,生产者的速度非常低。可是实际业务开发中。非常多时候我们又要保证数据不能丢失。所以我们必须要进行持久化操作。为了解决这个瓶颈问题。我们能够备採用第三方缓存或其它吞吐量高的持久化方式,所以我们通过改动AMQ的源代码来添加这些支持。大家有想法或好的方案。最好还是留言探讨。

事实上假设有的同学还在做MQ选型,就直接选择RabbitMQ吧,这个综合方面都要比AMQ要好。AMQ仅仅能说是老牌子,还是非常吃香的。比較非常多系统的需求AMQ足以应付。

假设对TPS要求非常高。最好还是可虑下Apache的MQ新宠“Kafha”。假设不要求消息的持久化,ZeroMQ也是不错的选择,它的吞吐量就像一头猛兽,仅仅是它不支持持久化。

AMQ是Java语言开发,本文以AMQ从源代码构建做个简单步骤说明:

1、下载源代码

大家能够从官网下载AMQ相应版本号的源代码,这里给一个地址:http://apache.fayea.com/activemq/

下载源代码文件 activemq-parent-5.13.0-source-release.zip 之后,解压到本地磁盘。我把它放在H盘的amq文件夹下。

2、打开CMD通过命令行的方式构建

cd H:\amq\activemq-parent-5.13.0

mvn -Dtest=false -DfailIfNoTests=false clean install

我在运行的时候,出现了一些jar包无法从maven仓库下载的错误,所以手动下载jar包(这个站点能够下载到非常多jar:http://www.java2s.com/Code/Jar/http://maven.outofmemory.cn/

aether-util-0.9.0.M2.jar

xz-1.2.jar

plexus-archiver-2.4.4.jar

我下载缺少的jar包后。手工安装到到本地maven仓库,命令例如以下:

mvn install:install-file -DgroupId=org.eclipse.aether -DartifactId=aether-util -Dversion=0.9.0.M2 -Dpackaging=jar -Dfile=aether-util-0.9.0.M2.jar

mvn install:install-file -DgroupId=org.tukaani -DartifactId=xz -Dversion=1.2 -Dpackaging=jar -Dfile=xz-1.2.jar

mvn install:install-file -DgroupId=org.codehaus.plexus -DartifactId=plexus-archiver -Dversion=2.4.4 -Dpackaging=jar -Dfile=plexus-archiver-2.4.4.jar

mvn install:install-file -DgroupId=org.codehaus.plexus -DartifactId=plexus-io -Dversion=2.0.10 -Dpackaging=jar -Dfile=plexus-io-2.0.10.jar

mvn install:install-file -DgroupId=groovy -DartifactId=groovy-all-1.0-jsr -Dversion=03 -Dpackaging=jar -Dfile=groovy-all-1.0-jsr-03.jar

大家依据实际报错的jar包按这样操作安装到本地仓库就可以。

我的网络不行,老是出现下载中断的情况,为此我倒腾好久。

总之。假设是网络问题就重复运行 mvn -Dtest=false -DfailIfNoTests=false clean instal 重试。假设是实在下载不下来jar包,就自己寻找后手工安装。

如此重复,直到出现 BUILD SUCCESS 为止,例如以下:

………………
………………
[INFO] ActiveMQ :: Tooling ............................... SUCCESS [0.061s]
[INFO] ActiveMQ :: Memory Usage Test Plugin .............. SUCCESS [3.111s]
[INFO] ActiveMQ :: Performance Test Plugin ............... SUCCESS [5.169s]
[INFO] ActiveMQ :: StartUp/Stop Plugin ................... SUCCESS [4.619s]
[INFO] ActiveMQ :: Web ................................... SUCCESS [1.961s]
[INFO] ActiveMQ :: OSGi bundle ........................... SUCCESS [20.011s]
[INFO] ActiveMQ :: Blueprint ............................. SUCCESS [0.634s]
[INFO] ActiveMQ :: Web Demo .............................. SUCCESS [12.950s]
[INFO] ActiveMQ :: Web Console ........................... SUCCESS [10.347s]
[INFO] ActiveMQ :: Karaf Integration Tests ............... SUCCESS [3.049s]
[INFO] ActiveMQ :: Integration Test :: Spring 3.1 ........ SUCCESS [0.627s]
[INFO] ActiveMQ :: Assembly .............................. SUCCESS [38.243s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7:22.460s
[INFO] Finished at: Thu Dec 24 01:35:48 CST 2015
[INFO] Final Memory: 176M/711M
[INFO] ------------------------------------------------------------------------
H:\amq\activemq-parent-5.13.0>

构建完毕后,进入assembly/target 文件夹,当中的两个压缩文件就各自是Linux 和Windows文件,解压就可以。(Linux是tar结尾文件,Win是zip结尾文件)

通过eclipse构建eclipseproject文件

命令:mvn eclipse:eclipse

然后就能够从eclipse导入project了,代码改动后,再使用上面的构建命令构建就可以。

以下是导入后的project:

时间: 2024-10-10 23:20:24

ActiveMQ从源代码构建的相关文章

亲自己主动手从源代码 构建 Groovy 2.3.8 公布包

今天为了学习 怎样使用 Groovy 写 Groovy 的測试代码, 所以到 http://groovy.codehaus.org/Download 下载了 Groovy 2.3.8 的源码包. Groovy 是採用 Gradle 作为 构建工具的. 先看我本地的 Gradle 的相关环境: >gradle -v ------------------------------------------------------------ Gradle 2.2 --------------------

ActiveMQ的安全机制使用及其源代码分析 [转]

ActiveMQ是目前较为流行的一款开源消息服务器.最近在项目开发中,需要为ActiveMQ开发基于IP的验证和授权机制,因此,对ActiveMQ的安全机制进行了了解,以下将介绍ActiveMQ的安全机制使用及其源代码分析. 本文开发环境介绍: 操作系统:Windows XP Java:jdk 1.6.0_12 maven:maven 3.0.4 ActiveMQ:ActiveMQ 5.6.0 ActiveMQ安全机制的介绍 安 全机制一般包含验证(Authentication)和授权(Auth

maven项目构建

Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在上面扩展出很多的插件.Mven采用的是插件的思想,通过插件的功能扩展出很多的功能.同时Maven采用约定大于配置的思想,在项目中采用了很多约定规则来减少配置.不想ant这样的构建工具需要很多的配置.作为一个项目构建工具,最重要的是管理项目的库和项目之间的依赖关系. 本文将以以下面的例子,来作为学习m

构建Apache Tomcat 6.0 Servlet/JSP 容器

构建Apache Tomcat 6.0 Servlet/JSP 容器 这个子项目包含了Tomcat 6.0的源代码,一个实现了Java Community Process http://www.jcp.org/ 的Servlet2.5和JSP2.1标准的容器. 注意:如果你只需要运行Tomcat,没有必要去构建它,你可以非常方便的下载一个二进制发布包.它是跨平台的.阅读RUNNING.txt文件,它介绍了怎样去运行它. 请按以下步骤来从源代码构建一个Tomcat的二进制发布版本: 下载并安装JD

构建Tomcat 6

构建Tomcat 6 目录 介绍 下载JDK5及以上发布包 安装Ant1.8及以上 检出或获得Tomcat6源代码 构建Tomcat 使用Eclipse构建 使用其它IDE构建 介绍 从SVN构建Apache Tomcat非常简单, 也是向Tomcat贡献的第一步,下面一步一下的操作步骤. 下载JDK5及以上发布包 JDK发布包可以从这里下载 重要: 设置一个环境变量JAVA_HOME,指向你安装JDK发布版的目录. 安装Ant1.8及以上 从这里下载Ant1.8及以上的二进制发布包 解压二进制

龙芯GO!龙芯平台上构建Go语言环境指南

龙芯软件生态系列——龙芯GO!龙芯平台上构建Go语言环境指南2016-07-05 龙芯中科1初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer.KenThompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言.Go语言最显著的特点是编码简洁迅速.支持高效并发和自动内存管理等.此外,Go语言还面向网络服务器.存储系统和数据库等领域的编程进行了优化设计,并且简化了应用系统的安装和部署.因此,Go语言受到了广大程序员的

使用 Vagrant 构建开发环境

摘要:本文描述了如使用 Vagrant 构建统一的开发环境. 问题 作为开发人员,我们通常面临的问题有: 开发环境需要手工安装配置,这包括操作系统(CentOS.Ubuntu).PHP/HHVM.Python.Node.js.MySQL.Apache/Nginx等的版本和配置. 无法重现问题.甲:你说的问题,怎么在我的机器上没事儿啊?乙:可问题的确存在,不信你到我的机器上来看.甲:那我的机器和你的环境哪里不同呢?因为环境不同,比如开发环境和生产环境不同,和测试环境也不完全相同. 团队中没有统一的

Tomcat7调试运行环境搭建与源代码分析入门

1. 需要准备好下面这些工具 JDK 1.6+ Maven 2或3 TortoiseSVN 1.7+ (从1.7开始".svn"目录集中放在一处了,不再每个目录下都放一份) Eclipse 3.5+ 这4个工具不在这里描述怎么配置了,如果你是有两三年开发经验的Java开发人员,正常来讲都一直在用了. 另外,分析tomcat源代码不需要对这4个工具做什么特殊配置. 2. 下载Tomcat的源代码 Apache旗下的开源项目基本上都放在这: http://svn.apache.org/re

从头开始构建LINUX [LFS]

“LINUX就是这个范”有一章专门介绍了Linux的构建,过程详细,很有意思.结合这方面的资料简要汇集一下 LFS 这个站点提供了从源代码构建一个Linux的详细步骤 书 http://archive.linuxfromscratch.org/lfs-museum/stable/LFS-BOOK-7.5.pdf 包 wget-list 经验证的包地址 http://archive.linuxfromscratch.org/lfs-museum/stable/wget-list 有的包拿不到的话,