Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309954
  • 博文数量: 63
  • 博客积分: 1997
  • 博客等级: 上尉
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 11:17
文章分类

全部博文(63)

文章存档

2010年(26)

2009年(37)

我的朋友

分类: LINUX

2010-01-06 10:46:19


、安装

1、因为jira运行在java环境下的,所以我们需要jdk的安装。jira是一个很好的错误跟踪软件,而confluence是一个java的wiki软件。

所需要的程序:

a、mysql  最好的5.0以上的版本

b、mysql驱动,我这里用的是mysql-connector-java-5.0.3-bin.jar

c、jdk最好1.4以上,我用的是jdk-1.6.0_12

d、官方下载jira3.13.5.Enterprise - Standalone(linux) 

e、破解工程附件 alassian-extras-1.17.jar

f、破解工程文件keygen.jar

g、官方下载confluence-3.0.2-std.tar.gz

h、confluence汉化包confluence-zh_CN-plugin-2.8.0.jar


1 安装jdk

下载地址:

注意:在安装新的jdk前l要看系统是否有自带的jdk程序,如果有必须删除。操作方法:rpm -qa | grep java  

如果出现java的安装软件,那要删除,操作方法:rpm -e 上面所列出的文件名称。这样就直接删除了系统中自带的jdk了。

然后在安装jdk,这里以 JDK1.6位例来做,比如我们文件放置在/backup/soft下。

我们进入/backup/soft下,#cd /backup/soft

#chown +x  jdk-1_6_0_12-linux-i586   增加它的可执行权限

#./jdk-1_6_0_12-linux-i586  一路按空格键,当出现yes or no时,输入yes然后回车。

Jdk就安装完成了,接下来我们设置环境变量 

#vi /etc/profile

在文件最后添加

#-----------------------------jdk start--------------------

JAVA_HOME=/usr/local/jdk1.6.0_12

JRE_HOME=/usr/local/jdk1.6.0_12/jre

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$PATH:/usr/local/jdk1.6.0_12/bin

export JAVA_HOME JRE_HOME CLASSPATH PATH

#-------------------------------jdk end--------------------

保存退出

#source /etc/profile 使设置的环境变量能够立时生效

#java -version 如果出现如内容,表示安装成功,否则从第一步看是检查

[root@localhost /]# java -version

java version "1.6.0_12"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0_12-b03)

Java HotSpot(TM) Client VM (build 1.6.0_12-b03, mixed mode, sharing)

至此我们的jdk服务就已经安装完毕。


2、安装mysql

下载地址:l.com

cd /usr/local/ 

tar -zvxf mysql-max-5.0.27-linux-i686-glibc23.tar.gz
mkdir -p /usr/local/mysql (省略也可)
cp -r mysql-max-5.0.27-linux-i686-glibc23.tar.gz /usr/local/mysql
cp /usr/local/mysql /support-files/my-medium.cnf /etc/my.cnf

添加mysql用户及用户组
groupadd mysql
useradd -g mysql mysql
修改mysql目录权限
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R mysql /usr/local/mysql /data
生成mysql系统数据库
/usr/local/mysql /mysql/scripts/mysql_install_db --user=mysql& 

启动mysql服务
# /export1/server/mysql/bin/mysqld_safe --user=mysql& 

修改 mysql root 密码
# /export1/server/mysql/bin/mysqladmin -u root password "123456"
OK这样就更改完成,不过mysql安装完成后有一个匿名用户,这个用户是不用密码就能登陆的。我们首先要删除这个匿名用户。

# /export1/server/mysql/bin/mysql -u root -p 

password:123456

进入后我们重新加载授权表。

mysql>flush privileges;

返回如下信息表示成功:Query ok, 0 row affected (0.00 sec)

删除匿名用户.

Mysql>use mysql;

Mysql>DELETE from user WHERE user=’ ‘;

返回如下信息:Query OK, 2 rows affected (0.00 sec)表示成功。

然后重新启动mysql。这样匿名用户就不能登陆mysql服务器了。

添加用户权限:

使用GRANT语句添加一个可以从本地主机连接到mysql服务器的

超级用户root,但是连接必须使用口令123456

mysql>GRANT ALL ON *.* TO root@localhost IDENTIFIED BY ‘123456’

->WITH GRANT OPTION;

返回信息Query ok, 0 row affected (0.002 sec)表明设置成功

使用同样的方法添加一个可以从其他任何地方连接到mysql服务器

超级用户root,但是连接时必须使用口令123456

mysql>GRANT ALL ON *.* TO ’root@% ’ IDENTIFIED BY ‘123456’

->WITH GRANT OPTION

退出客户端程序mysql.然后使用新用户root重新连接服务器。


4、安装jira并破解

下载地址 

我这里使用3系列最新的版本3.13.5

这里要用到Eclipse,记住不能用myeclipse,有些选项是不一样的,但是可以在Eclipse的基础上扩展安装myeclipse。

打开Eclipse, 新建一个java project的工程--->命名为projira---->右键点击prjira----->Build Path--->Add Extenal Archive---->弹出对话框找出保存路径,把atlassian-extras-1.17.jar,引入到工程中---->右键点击src文件夹---->Import---->

Other---->Remote file system点击next ---->Browse--->Drives找到keygen.java,---->点击finish引入到工程中。

然后依次展开src树选中的keygen.java--->点击run运行---->在console中可以看到如下结果:

Keygen for JIRA Enterprise Edition.

created by mydaj[ROR].

Enter your organization name: fg #这里输入组织名称。

267^^1256115625687^^1256115625687^^fg

Your license key is: 

pOmrWnpowCPjLDActpImgvhvmpmcqnBekhxVnJPoViNOUw

mj2KtjNrK6j2ErB1hdu6xDdm2L09Uly4ri5B4L4pFSKrUTM

mmpVTQqoQMOOpMnqnNUWqopnQoPrMPQoOswsVostUUnopvu

tsupumvqUUnopvutsupumvqUUcd

以上就是我们所需要的破解jira的key文件,然后把它保存起来,这个破解文件我们之后是要用的。


具体atlassian-extras-1.17.jar文件可以自己去网站找着下载

然后就是keygen.java文件


import com.atlassian.license.LicensePair;

import java.io.*;

import java.security.KeyFactory;

import java.security.Signature;

import java.security.spec.PKCS8EncodedKeySpec;


public class keygen

{


    public keygen()

    {

    }


    public static void main(String args[])

        throws IOException

    {

        try

        {

            long l = 267L;

            long l1 = System.currentTimeMillis();

            long l2 = System.currentTimeMillis();

            String s = "";

            System.out.println("Keygen for JIRA Enterprise Edition.");

            System.out.print("created by mydaj[ROR].");

            do

            {

                System.out.print("\nEnter your organization name: ");

                for(int i = System.in.read(); i != 10 && i != 13; i = System.in.read())

                    s = s + (char)i;


            } while(s == "");

            try

            {

                PKCS8EncodedKeySpec pkcs8encodedkeyspec = new PKCS8EncodedKeySpec(EncodedPrvKey);

                KeyFactory keyfactory = KeyFactory.getInstance("DSA", "SUN");

                java.security.PrivateKey privatekey = keyfactory.generatePrivate(pkcs8encodedkeyspec);

                String s1 = Long.toString(l, 10);

                s1 = s1 + "^^";

                s1 = s1 + Long.toString(l1, 10);

                s1 = s1 + "^^";

                s1 = s1 + Long.toString(l2, 10);

                s1 = s1 + "^^";

                s1 = s1 + s;

                byte abyte0[] = s1.getBytes();

                Signature signature = Signature.getInstance("SHA1withDSA");

                signature.initSign(privatekey);

                signature.update(abyte0);

                byte abyte1[] = signature.sign();

                LicensePair licensepair = null;

                try

                {

                    licensepair = new LicensePair(abyte0, abyte1);

                }

                catch(Exception exception1)

                {

                    exception1.printStackTrace();

                }

                System.out.println(s1);

                System.out.println("Your license key is: ");

                System.out.println(licensepair.toString());

            }

            catch(Exception exception)

            {

                exception.printStackTrace();

            }

        }

        catch(IOException ioexception) { }

    }


    static byte EncodedPrvKey[] = {

        48, -126, 1, 75, 2, 1, 0, 48, -126, 1, 

        44, 6, 7, 42, -122, 72, -50, 56, 4, 1, 

        48, -126, 1, 31, 2, -127, -127, 0, -3, 127, 

        83, -127, 29, 117, 18, 41, 82, -33, 74, -100, 

        46, -20, -28, -25, -10, 17, -73, 82, 60, -17, 

        68, 0, -61, 30, 63, -128, -74, 81, 38, 105, 

        69, 93, 64, 34, 81, -5, 89, 61, -115, 88, 

        -6, -65, -59, -11, -70, 48, -10, -53, -101, 85, 

        108, -41, -127, 59, -128, 29, 52, 111, -14, 102, 

        96, -73, 107, -103, 80, -91, -92, -97, -97, -24, 

        4, 123, 16, 34, -62, 79, -69, -87, -41, -2, 

        -73, -58, 27, -8, 59, 87, -25, -58, -88, -90, 

        21, 15, 4, -5, -125, -10, -45, -59, 30, -61, 

        2, 53, 84, 19, 90, 22, -111, 50, -10, 117, 

        -13, -82, 43, 97, -41, 42, -17, -14, 34, 3, 

        25, -99, -47, 72, 1, -57, 2, 21, 0, -105, 

        96, 80, -113, 21, 35, 11, -52, -78, -110, -71, 

        -126, -94, -21, -124, 11, -16, 88, 28, -11, 2, 

        -127, -127, 0, -9, -31, -96, -123, -42, -101, 61, 

        -34, -53, -68, -85, 92, 54, -72, 87, -71, 121, 

        -108, -81, -69, -6, 58, -22, -126, -7, 87, 76, 

        11, 61, 7, -126, 103, 81, 89, 87, -114, -70, 

        -44, 89, 79, -26, 113, 7, 16, -127, -128, -76, 

        73, 22, 113, 35, -24, 76, 40, 22, 19, -73, 

        -49, 9, 50, -116, -56, -90, -31, 60, 22, 122, 

        -117, 84, 124, -115, 40, -32, -93, -82, 30, 43, 

        -77, -90, 117, -111, 110, -93, 127, 11, -6, 33, 

        53, 98, -15, -5, 98, 122, 1, 36, 59, -52, 

        -92, -15, -66, -88, 81, -112, -119, -88, -125, -33, 

        -31, 90, -27, -97, 6, -110, -117, 102, 94, -128, 

        123, 85, 37, 100, 1, 76, 59, -2, -49, 73, 

        42, 4, 22, 2, 20, 42, 50, -88, 30, 125, 

        -37, 118, -50, 20, -82, -63, 0, 8, -36, 106, 

        -9, -110, 124, 107, 68

    };


}

把以上的内容保存为keygen.java。


解压缩jira的包

tar -zvxf atlassian-jira-enterprise-3.13.5-standalone.tar.gz

mv altssian-jira-enterprise-3.13.5 /usr/local/jira

新版本的jira都已经集成了tomcat,所以一般我们直接去bin目录中启动就可以了。我们先修改mysql的连接文件。


因为我们使用的是mysql5,所以我们要使用mysql的驱动mysql-connector-java-5.0.3-bin.jar 放到/usr/local/jira/common/lib,一般的文档都说放到这里,但是后来发现应该放到/usr/local/jira/server/lib.


打开 jira目录\atlassian-jira\WEB-INF\classes\entityengine.xml ,将 field-type-name“hsql” 改成   field-type-name= “mysql”

同时要删除这一行下面的一行 schema-name=”PUBLIC”

把这行调到这一段的最上一行。


然后打开/usr/local/jira/conf/server.xml


    这大段修改为:
    
               username="root"
                password="密码"
               driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost/jiradb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&mysqlEncoding=utf8"
               minEvictableIdleTimeMillis="4000"
              timeBetweenEvictionRunsMillis="5000"
             maxActive="20" />

如果是mysql5.0 拿去数据源驱动名称要修改为org.gjt.mm.mysql.Driver,这个数据库的路径是我这个包所打的路径。

然后进入mysql中创建jiradb数据库

/usr/local/mysql/bin/mysql -uroot -p

输入密码,进入mysql,创建数据库。

create database jiradb;

然后运行jira

cd /usr/local/jira/bin

./catalina.sh run #我启动的是调试模式,看可以查看运行的状态。


#关于jira汉化的问题,到了3.10以后,已经加入了汉化包,已经可以不用再去汉化了,如果安装完成后,点击中文的语言环境,环视乱码的问题,这个是数据库出现的问题。具体修改方法如下:

打开数据库,我这里用的phpmyadmin,在jira的数据库中查找propertystring这个表,展开后看到字段propertyvalue,修改里面的BIG5,修改成UTF-8,这样就没有乱码了。这个问题是JIRA的MVC框架是用WebWork做的,所以就感觉这个应该是WebWork国际化用的变量。最好这个操作在没有认证之前来进行操作。

3、安装confluence


下载地址:

我使用的是最新版本,3.0.2版本。

解压到jira目录下,把文件放到/usr/local/jira/confluence

#建议在安装之前先看一下文档,

有我们所需要的内容。


编辑confluence/WEB-INF/classes下的confluence-init.properties文件,指定你的Confluence目录,修改部分代码如下:

# specify your directory below (don't forget to remove the '#' in front)

# confluence.home=c:/confluence/date

修改为:

# specify your directory below (don't forget to remove the '#' in front)

confluence.home=/usr/local/confluenct/data

#在usr/local/confluenct/下,没有data这个文件,要手动创建。


和jira做结合

在jira的conf/Catalina/localhost目录下创建名为confluence.xml的文件,文件内部代码如下:


将confluence-zh_CN-plugin-2.8.0.jar拷贝到confluence/WEB-INF/lib目录下,我们主要做汉化。

使用confluence破解,下载keygen.class,这个是confluence的破解key,我是在win下做的破解,运行--》cmd--->给出java的存放路径 java keygen (这个应该在linux下也可以操作)

运行结果出来以后根据提示随便输入一个用户名---》回车

Your license key is:(下面就是注册码了)

   pOmrWnpowCPjLDActpImgvhvmpmcqnBekhxVnJPoViNOUwG

mj2KtjNrK6j2ErB1hdu6xDdm2L09Uly4ri5B4L4pFSKrUTM

mmpVTQqoQMOOpMnqnNUWqopnQoPrMPQoOswsVostUUnopvu

tsupumvqUUnopvutsupumvqUUcd

在/usr/local/confluence/confluence/WEB-INF/classes/com/atlassian/confluence的目录下创建,page文件夹,然后将解压出来的page.key文件copy到这个文件下。

重新启动jira服务,在原jira地址后加confluence即可进入Confluence配置界面。


二、testlink和jira整合


1、testlink安装

直接下载testlink文件。

我们下载最新版的1.8.版本4

上传到服务器,看是解压,安装,配置

Tar -zvxf testlink_1.8.4.tar.bz2

mv testlink_1.8.4  /usr/local/apahce/htdocs/testlink

在浏览器里打开页面<

1 直接在页面点击“New Installtion” 

2 在打开的页面中设置mysql数据库和testlink数据库的访问权限设置;

Database  Type  Mysql

Database  host  localhost

//配置访问Mysql的地址;

Database  login  testlink

Database  password  111111

//配置访问mysql的访问权限;

TestLink  DB  login  testlink

TestLink  DB  password  111111

//配置访问testlink的数据库权限;


3 点击“同意许可协议”,继续

4 这里会有一个错误,不能创建文件,所以我们要给testlink可写入的权限。

 Chmod -R 777 testlink/ 

安装完成,点击最后一行的(Please Click Me!)

5 testlink第一次安装成功后,默认管理员帐号为admin, 密码admin,可以登录。

6 目前程序使用的是英文,我们把它改为中文。修改config.inc.php文件

找到$g_default_language = ‘en_GB’;

$g_default_language = ‘zh_CN’;

7)但是有一点,对于admini的用户我们需要在用admin用户登录后修改,点击:个人帐号

然后在里面设置语言为Chinese Simplified,然后把上面的文件都修改。

config.inc.php最下面,解决日期乱码问题。

$g_locales_timestamp_format = arrry (

‘zh_CN’ => “%Y-%m-%d  %H:%M:%S”,

);  


2、整合

打开文件,jira.cfg.php

vi /usr/local/apache/htdocs/testlink/cfg/jira.cfg.php

* 20051229 - scs - added DEFINE for the DB-Type

*/


// Contributed by  jbarchibald@gmail.com


//Set the bug tracking system Interface to JIRA 3.1.1

/** The DB host to use when connecting to the JIRA db */

define('BUG_TRACK_DB_HOST', 'localhost');   #修改为jira所在机器(ip)


/** The name of the database that contains the jira tables */

define('BUG_TRACK_DB_NAME', 'jiradb'); #指定jira的数据库名称


/** The DB type to use for connecting to the bugtracking db */

define('BUG_TRACK_DB_TYPE', 'mysql'); #指定连接的数据库的类型



/** The DB type being used by jira */

define('BUG_TRACK_DB_USER', 'root'); #指定数据库的用户名


/** The DB password to use for connecting to the jira db */

define('BUG_TRACK_DB_PASS', '123456'); #指定数据库的密码


define('BUG_TRACK_DB_CHARSET',"windows-1250");

// define('BUG_TRACK_DB_CHARSET',"gb2312");

// define('BUG_TRACK_DB_CHARSET',"UTF-8"); #指定默认的字符集,我们jira里使用的是UTF-8,和jira保持相同。



/** link of the web server for jira */

// define('BUG_TRACK_HREF', "http://localhost:8080/secure/Dashboard.jspa");

define('BUG_TRACK_HREF', "");  #指定访问jira的网址


打开文件config.inc.php

vi /usr/local/apache/htdocs/testlink/config.inc.php

// ----------------------------------------------------------------------------

/** [Bug Tracking systems] */

/**

* TestLink uses bugtracking systems to check if displayed bugs resolved, verified,

* and closed bugs. If they are it will strike through them

*

* @var STRING TL_INTERFACE_BUGS = ['NO', 'BUGZILLA', 'MANTIS', 'JIRA', 'EVENTUM']

* NO        : no bug tracking system integration

* BUGZILLA  : edit configuration in TL_ABS_PATH/cfg/bugzilla.cfg.php

* MANTIS    : edit configuration in TL_ABS_PATH/cfg/mantis.cfg.php

* JIRA      : edit configuration in TL_ABS_PATH/cfg/jira.cfg.php

* TRACKPLUS : edit configuration in TL_ABS_PATH/cfg/trackplus.cfg.php

* EVENTUM : edit configuration in TL_ABS_PATH/cfg/eventum.cfg.php

*/

$g_interface_bugs='NO'; #把这里修改为JIRA,如果和mantis结合就写mantis.


// ----------------------------------------------------------------------------



到这里就完全结合完毕。如图:

TestLink上执行测试用例Failed的界面


      2.整合后,在TestLink上执行测试用例Failed的界面


      可以明显看出来多了一个 BUG management,点下面的小蜘蛛,会打开一个新的页面


     
      通过 Access to Bug Tracking System (Mantis) 这个链接打开Mantis,进行bug登记,登记完毕,记下此时的bug号,填写进Mantis Bug id里,点 Add bug 按钮,整个过程完成,最终会在TestLink里显示出Mantis登记的bug信息。

阅读(9457) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~