jira安装与使用(长篇详讲,含破解过程)

  1. 安装jira
    1.1下载安装包,我已经准备好了链接:https://pan.baidu.com/s/1wwKfX5igEOn57pHh2tN0WA
    提取码:7mb7
    1.2修改bin文件的权限chmode 755 atlassian-jira-software-7.4.1-x64.bin
    1.3安装 ./atlassian-jira-software-7.4.1-x64.bin
    1.4安装过程需要输入一系列的yes或者路径,都是简单的英文
    1.5安装完成后进入到jira安装目录xxxx/atlassian/jira/conf/server.xml,修改自己不满意的信息,基本都是tomcat修改
    1.6复制破解包中的atlassian-extras-3.2.jar到xxxx/atlassian/jira/atlassian-jira/WEB-INF/lib/目录下,最后找一个数据库连接驱动包到这个目录下,一般为mysql驱动包,记住如果破解包和该目录下的atlassian-extras-**不一样,一定要删除之前的jar
    1.7登录jira,首先是下面的图
    jira安装与使用(长篇详讲,含破解过程)_第1张图片
    配置数据库信息
    jira安装与使用(长篇详讲,含破解过程)_第2张图片
    查看是否连接成功
    jira安装与使用(长篇详讲,含破解过程)_第3张图片
    点击下一步,接下来的可以直接使用默认。注意一点如果是privata模式的部署,需要指定许可证,我们直接点击试用生成许可证记住服务器ID,
    jira安装与使用(长篇详讲,含破解过程)_第4张图片
    生成许可证后,复制到刚刚的输入框,基本就完成了安装,接下来的步骤自己可以完成。
  2. 安装并破解插件
    2.1.安装插件,正常点击试用,按照要求填写账号。
    2.2.复制破解包中的atlassian-universal-plugin-manager-plugin-2.22.9.jar到xxxx/atlassian/jira/atlassian-jira/WEB-INF/atlassian-bundled-plugins/目录下,如果没有提示覆盖,那么删除该目录下的atlassian-universal-plugin-manager-plugin-* jar包,但是一定要注意atlassian-universal-plugin-manager-plugin插件一定不能更新,否则又得重新来一遍。
    2.3.重启jira,破解过程完成
  3. 插件使用
    3.1使用gitlab进行jira认证,我通过选择,最终决定使用miniOrange OAuth Client,可是该插件默认使用的是gitlab.com,并且没有找到配置的位置,但是这个并不能难道我们,在xxx/jira/plugins/installed-plugins目录下找到XXX.jira-oauth-*.jar,该jar包是miniOrange OAuth Client插件包,使用jd-gui反编译,找到MoOAuthPluginHandler.class,在saveOAuthConfiguration方法中找到了gitlab域名信息。
    3.2使用JClassLib读取class文件
    3.3下载jclassLib并安装链接:https://pan.baidu.com/s/12qzKjq1vP4xuzH55ZB2KZg
    提取码:2tp3
    3.4使用jclassLib打开MoOAuthPluginHandler.class
    3.5依次点击methods>saveOauthConfiguration>code在bytecode下找到需要寻找的字符串,例如我的已经改过了,点击#88,会显示cp info,点击#442终于看到最终的字符串了,我们要改的就在442行。
    jira安装与使用(长篇详讲,含破解过程)_第5张图片
    在这里插入图片描述
    其它需要改的依次可以查出来行号
    编辑java代码,修改其中的值
    需要导入jclassLib安装目录下lib中的jclasslib-library.jar
    代码如下:
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.gjt.jclasslib.io.ClassFileWriter;
import org.gjt.jclasslib.structures.CPInfo;
import org.gjt.jclasslib.structures.ClassFile;
import org.gjt.jclasslib.structures.InvalidByteCodeException;
import org.gjt.jclasslib.structures.constants.ConstantUtf8Info;

public class Client
{
     @SuppressWarnings("deprecation")
    public static void main(String[] args){   
         String filePath = "E:\\myWork\\alter_class\\src\\main\\resources\\MoOAuthPluginHandler.class";
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(filePath);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
               
            DataInput di = new DataInputStream(fis);   
            ClassFile cf = new ClassFile();   
            try {
                cf.read(di);
            } catch (InvalidByteCodeException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }   
            CPInfo[] infos = cf.getConstantPool();   
               
            int count = infos.length;   
            for (int i = 0; i < count; i++) {   
                if (infos[i] != null) {   
                    System.out.print(i);   
                    System.out.print(" = ");   
                    try {
                        System.out.print(infos[i].getVerbose());
                    } catch (InvalidByteCodeException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }   
                    System.out.print(" = ");   
                    System.out.println(infos[i].getTagVerbose());   
                    if(i == 445){
                        ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];
                        uInfo.setBytes("http://192.168.1.6:12345/api/v4/groups".getBytes());
                        infos[i]=uInfo;
                    }else if(i == 444){
                        ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];
                        uInfo.setBytes("http://192.168.1.6:12345/api/v4/user".getBytes());
                        infos[i]=uInfo;
                    }else if(i == 443){
                        ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];
                        uInfo.setBytes("http://192.168.1.6:12345/oauth/authorize".getBytes());
                        infos[i]=uInfo;
                    }else if(i == 442){
                        ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];
                        uInfo.setBytes("http://192.168.1.6:12345/oauth/token".getBytes());
                        infos[i]=uInfo;
                    }
                }   
            }   
            cf.setConstantPool(infos);   
            try {
                fis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
            File f = new File(filePath);   
            try {
                ClassFileWriter.writeToFile(f, cf);
            } catch (InvalidByteCodeException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
        }   
}

3.6将整好的class替换进去,将jar也替换到jira的插件库,重启jira,如果不行,就先禁用该插件,不停的修改,直到缓存结束,该插件的配置因为有配置文档可参考不需多说。

  1. 常见插件列表
    https://blog.csdn.net/shangyuanlang/article/details/80972462

  2. 使用
    5.1创建项目,点击项目按钮->创建项目
    在这里插入图片描述
    5.2在弹出的对话框中选择是流程还是软件,我们拿软件为例,选择一个模板,比如第一个,点击下一步,会给列出问题类型和工作流,点击下一步填写名称,关键字(将来问题提交的时候根据这个在后面添加数字自动生成id),项目负责人,点击提交完成项目创建。
    jira安装与使用(长篇详讲,含破解过程)_第6张图片
    5.3添加问题,点击新建,我们只需填写标星的字段。
    jira安装与使用(长篇详讲,含破解过程)_第7张图片
    5.4选择问题类型时发现缺少部分类型,我们可以在管理员权限的用户下进行设置,点击导航栏的齿轮,其中有应用程序选项,点击后选择问题,在问题类型方案中进行配置。
    jira安装与使用(长篇详讲,含破解过程)_第8张图片
    5.5使用插件和源码管理仓库进行联系,比如我的使用Git Integration for Jira这个插件进行和gitlab连接,装上这个插件后在导航栏会多出一个git功能,点击进行仓库连接设置,进入项目点击git选择一个仓库,完成关联,这个时候提交代码就可以和问题关联上了,我们进入项目,点击问题,会看到一个问题标识
    jira安装与使用(长篇详讲,含破解过程)_第9张图片
    5.6使用开发工具提交问题修复代码时,在commit中填写问题标识 注释。完成代码关联
    jira安装与使用(长篇详讲,含破解过程)_第10张图片

你可能感兴趣的:(工具使用)