项目

一般

简介

Redmine插件

概述

Redmine插件是用于扩展Redmine功能的独立模块,遵循特定的开发规范和目录结构。它允许用户在不修改Redmine核心代码的前提下,通过热部署方式添加新功能、修改界面或集成第三方服务。插件通过钩子(Hooks)机制与核心系统交互,具有版本隔离、权限继承和国际化支持等特性,是Redmine生态系统的重要组成部分。

安装插件

  • 安装前准备工作
    • 检查redmine和ruby版本是否符合待安装插件的环境要求
    • 备份redmine数据库(推荐)
    • 切换到redmine根目录1
  • 安装流程
    • 下载插件包
    • 解压到`redmine根目录/plugins`目录,确保解压后的插件目录名与插件名相同。
    • 确保目录正确的读写权限
    • 如果插件存在运行的依赖要求2,请运行下面指令
      bundle install --without development test
      
    • 如果插件要求数据迁移操作3,请运行下面指令
      bundle exec rake redmine:plugins:migrate RAILS_ENV=production
      
      # 如何是windows环境,请改用下面指令
      set RAILS_ENV=production
      bundle exec rake redmine:plugins:migrate
      
    • 如果上述过程没有任何报错,说明插件安装正常。重新启动redmine验证插件是否生效。使用redmine管理员账户依次点击进入“管理”、 “插件”界面,检查新安装的插件是否出现在插件列表中。
    • 安装失败或插件未生效的的处理方法
      • 如果安装过程未出现错误,但安装插件未出现在redmine的插件列表界面,请检查插件压缩包在解压时是否出现了嵌套目录或者解压后的目录里缺少init.rb初始化文件。
      • 如果安装过程出现异常报错信息,记录报错信息。通过下方的卸载插件方法退回到安装此插件前的状态,根据报错信息修复问题后再重新执行安装流程。

卸载插件

  • 如果被卸载的插件要求迁移操作4,请运行下面指令回滚数据库迁移至安装此插件之前的状态,与此插件有关的数据将被移除(建议此操作前备份你的数据库):
    bundle exec rake redmine:plugins:migrate NAME=plugin_name VERSION=0 RAILS_ENV=production
    
    # 如何是windows环境,请改用下面指令
    set RAILS_ENV=production
    bundle exec rake redmine:plugins:migrate NAME=plugin_name VERSION=0 
    
  • 从redmine的插件目录中删除此插件的整个子目录。
  • 重新启动redmine

插件配置

插件提供的说明文档或手册中通常会说明此插件会为redmine提供哪些功能或影响,是否有要求进一步完成哪些插件配置。大多数插件配置分为下面几种类型:

  • 无需任何配置
    • 此类插件不提供任何配置界面,安装并重新启动redmine后功能即刻生效
  • 插件要求额外配置,可细分为如下几个或全部选项
    • 通过插件的配置“按钮”进入插件特定的配置界面并完成参数设定
    • 插件安装后可能为redmine增加了新的模块。进入具体的项目的配置界面,检查是否有插件新增的“模块”,根据需要启用相应的模块
    • 插件安装后可能为redmine增加了新的模块和角色权限策略,进入redmine管理界面的 “角色和权限”完成进一步的权限配置
    • 除以上情况外,某些插件可能还需要额外配置或其它辅助组件支持(例如:有些插件需要系统预装openoffice实现文档转换),请具体参考插件提供的手册或相关说明文档

插件手册

本手册主要是面向本站已收录和维护的插件手册的中文版本,更多插件原版文档请前往 redmine.org官方的插件目录

注释

1 如果不知道哪个目录是Redmine的根目录,可以通过查找含有`config.ru`, `Rakefile`, `Gemfile`这些文件的目录即为Redmine的根目录

2 如果待安装的插件目录下存在 Gemfile 或 PluginGemfile 文件,说明该插件存在外部依赖,此步骤操作将是必选项。

3 如果待安装的插件目录下存在db/migrate 子目录且该子目录下存在文件,说明该插件需要对数据库做数据迁移操作

4 如同注释3的方法同样可以判定某个插件的卸载是否必须做数据迁移操作。需要额外关注的是卸载插件操作会将该插件的历史数据从数据库中删除。

点赞1