DevOps DevOps
产品简介
产品安装
快速入门
使用指南
开发指南
FAQ
6.7更新说明
  • Eclipse PDE 安装
  • 插件项目导入及运行
  • 目录结构
  • 扩展点
  • 导出插件包
  • PDE 方式
  • Ant 方式

# Eclipse PDE 安装

Eclipse 版本选择:2023-09 (4.29.0) 的 Committers 或者 JEE 版本。

# 插件项目导入及运行

  1. 依次点击 File -> Import -> General -> Existing Projects into Workspace,选中 DevOps 代码目录下的模块devops-ide-eclipse后点击Finish完成导入

    project-import

  2. 点击进入 Window -> Preferences -> Java-> Installed JREs 页面,点击【Add】增加本地 JDK 的安装目录

    jdk-configuration-1

    注意

    JDK 最好使用由 Oracle 公司发布的,使用 OpenJDK 可能会出现依赖包缺失,且要求版本大于等于17

  3. 点击进入 Window -> Preferences -> Java-> Installed JREs 页面,将Compiler compliance level设置为17

    jdk-configuration-2

  4. 运行插件

    鼠标右键点击com.primeton.devops.ide.eclipse模块后,选择并点击 Debug As -> Eclipse Application 即可运行插件。

    debug-plugin

# 目录结构

├── build.properties
├── icons
│   ├── refresh.gif
│   ├── workItemBug.png
│   ├── workItemCustom.png
│   ├── workItems.gif
│   ├── workItemStory.png
│   └── workItemTask.png
├── META-INF
│   └── MANIFEST.MF
├── plugin.properties
├── plugin.xml
├── plugin_zh_CN.properties
└── src
 └── com
     └── primeton
         └── devops
             └── ide
                 └── eclipse
                     ├── action
                     │   └── WorkItemSelectAction.java
                     ├── DevopsConstant.java
                     ├── DevopsPluginImages.java
                     ├── DevopsUImessage.java
                     ├── DevopsUImessage.properties
                     ├── DevopsUImessage_zh_CN.properties
                     ├── DevopsUIPlugin.java
                     ├── dialog
                     │   ├── MemberSelectDialog.java
                     │   ├── SolutionStatusDialog.java
                     │   └── WorkItemSelectDialog.java
                     ├── editor
                     │   ├── DevopsWorkItemEditor.java
                     │   ├── section
                     │   │   ├── WorkItemAssignSection.java
                     │   │   ├── WorkItemAttachSection.java
                     │   │   ├── WorkItemDateSection.java
                     │   │   ├── WorkItemDescSection.java
                     │   │   ├── WorkItemGeneralSection.java
                     │   │   └── WorkItemInfoSection.java
                     │   ├── WorkItemEditorInput.java
                     │   └── WorkItemInfoEditorPage.java
                     ├── preferences
                     │   └── DevopsPreferencePage.java
                     ├── utils
                     │   ├── ApiUtil.java
                     │   ├── HttpUtil.java
                     │   └── WorkItemManager.java
                     └── view
                         ├── DevopsWorkItemsView.java
                         └── provider
                             ├── TableContentProvider.java
                             ├── TableLabelProvider.java
                             ├── TableViewerComparator.java
                             └── WorkItemViewerFilter.java
  • plugin.xml:用于插件扩展点的定义。
  • META-INF/MANIFEST.MF:插件清单,用于定义插件名称、版本、启动器、提供者以及依赖项等声明信息。
  • plugin.properties:用于插件的全局变量定义,其变量可在plugin.xml和META-INF/MANIFEST.MF文件中引用.
  • plugin_zh_CN.properties:用于国际化,相对于plugin.properties的中文适配。
  • DevopsUImessage.java:国际化类,用于需进行国际化的属性变量的声明。DevopsUImessage.properties和DevopsUImessage_zh_CN.properties这两个文件分别是对应这些属性变量的英文和中文的适配。
  • DevopsUIPlugin.java:插件启动/销毁类,通过插件清单文件META-INF/MANIFEST.MF中的Bundle-Activator参数进行定义。
  • DevopsPluginImages.java:图标加载器。
  • com.primeton.devops.ide.eclipse.action包:Git Staging 视图中打开工作项弹窗的按钮实现。
  • com.primeton.devops.ide.eclipse.dialog包:实现各类弹窗。
  • com.primeton.devops.ide.eclipse.editor包:实现工作项详情页。
  • com.primeton.devops.ide.eclipse.preferences包:实现配置 DevOps 信息的首选项页。
  • com.primeton.devops.ide.eclipse.view包:实现工作项列表视图。

# 扩展点

扩展点在 Eclipse 中作为一个松耦合的功能块被广泛使用,在plugin.xml中可以看到插件扩展点的声明:

  • DevOps信息首选项

    <extension
          point="org.eclipse.ui.preferencePages">
          <page
             class="com.primeton.devops.ide.eclipse.preferences.DevopsPreferencePage"
             id="com.primeton.devops.workItem.preference"
             name="%DevopsConnection"/>
    </extension>
    
  • 工作项列表视图

    <extension
          point="org.eclipse.ui.views">
          <category
             id="com.primeton.devops.category"
             name="%DevopsCategory"/>
          <view
            category="com.primeton.devops.category"
            class="com.primeton.devops.ide.eclipse.view.DevopsWorkItemsView"
            icon="icons/workItems.gif"
            id="com.primeton.devops.workitem.view"
            name="%DevopsWorkItems"/>
    </extension>
    <extension
          point="org.eclipse.ui.perspectiveExtensions">
          <perspectiveExtension targetID="org.eclipse.jdt.ui.JavaPerspective">
               <viewShortcut id="com.primeton.devops.workitem.view"/>
               <view
                id="com.primeton.devops.workitem.view"
                ratio="0.5"
                relationship="stack"
                relative="org.eclipse.ui.views.ProblemView"
                visible="true"/>
          </perspectiveExtension>
    </extension>
    
  • 工作项详情编辑页

    <extension
          point="org.eclipse.ui.editors">
          <editor
             class="com.primeton.devops.ide.eclipse.editor.DevopsWorkItemEditor"
             default="true"
             icon="icons/workItems.gif"
             id="com.primeton.devops.workitem.editor"
             name="%DevopsWorkItemEditor"/>
    </extension>
    
  • Git Staging 视图中的工作项按钮

    <extension
          point="org.eclipse.ui.viewActions">
          <viewContribution
             id="StagingView.commitCode"
             targetID="org.eclipse.egit.ui.StagingView">
          <action
                class="com.primeton.devops.ide.eclipse.action.WorkItemSelectAction"
                icon="icons/workItems.gif"
                id="org.eclipse.egit.ui.StagingView.action.WorkItemSelectAction"
                label="commitCode"
                style="push"
                toolbarPath="action"
                tooltip="%SelectWorkItems"/>
       </viewContribution>
    </extension>
    

# 导出插件包

# PDE 方式

鼠标右键点击com.primeton.devops.ide.eclipse模块后,选择进入 Export -> Plug-in Development -> Deployable plug-ins and fragments 页面,并在【Destination】标签页中配置插件导出路径,最后点击【Finish】按钮即可完成插件导出。

export-by-pde

# Ant 方式

Eclipse 插件代码亦可用 Apache Ant 工具进行编译并导出插件包。

用于构建并导出本插件的 Ant 的build.xml文件位于 DevOps 代码根路径下的devops-dailybuild/studio/build-eclipse目录中,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="default" name="devops-ide-eclipse">
	<property name="eclipse.linux.url" value="http://10.15.15.133:8081/repository/3rd/com/primeton/3rd/eclipse/eclipse_linux/4.29.0/eclipse-jee-2023-09-R-linux-gtk-x86_64.zip"/>
	<property environment="env"/>
	<property name="debuglevel" value="source,lines,vars"/>
	<property name="target" value="17"/>
	<property name="source" value="17"/>
	<target name="default">
		<echo level="info">
					the Parameters:
			            eclipse.linux.url: eclipse-jee-2023-09-R-linux-gtk-x86_64.zip. default value is ${eclipse.linux.url}
						studio.eclipse.path: cannot be null
		</echo>
		<antcall target="init"/>
		<antcall target="compiler"/>
		<antcall target="clean"/>
	</target>
	<target name="init">
		<delete dir="${basedir}/features" />
		<delete dir="${basedir}/plugins" />
		<mkdir dir="${basedir}/features" />
		<mkdir dir="${basedir}/plugins" />
		<echo message="copy plugins" />
		<copy todir="${basedir}/plugins">
			<fileset dir="${studio.eclipse.path}" />
		</copy>
		<echo message="copy features" />
		<move todir="${basedir}/features/com.primeton.devops.ide.feature">
			<fileset dir="${basedir}/plugins/com.primeton.devops.ide.feature" />
		</move>
		<delete dir="${basedir}/eclipse" />
		<mkdir dir="${basedir}/eclipse" />
		<get src="${eclipse.linux.url}" dest="${basedir}/eclipse" />
		<unzip dest="${basedir}/eclipse">
			<fileset dir="${basedir}/eclipse/">
				<include name="*.zip" />
			</fileset>
		</unzip>
	</target>
	<target name="compiler">
		<tstamp>
			<format property="time" pattern="yyyyMMddHHmmss" locale="en,GB" />
		</tstamp>
		<exec dir="${env.JAVA17_HOME}/bin" executable="java" failonerror="true">
			<arg line="-version" />
		</exec>
		<echo message="exec:${env.JAVA17_HOME}/bin/java -jar ${basedir}/eclipse/eclipse/plugins/org.eclipse.equinox.launcher_1.6.500.v20230717-2134.jar -application org.eclipse.ant.core.antRunner -buildfile ${basedir}/eclipse/eclipse/plugins/org.eclipse.pde.build_3.12.100.v20230825-1354/scripts/build.xml -Dbuilder=${basedir} -Dbase=${basedir}/eclipse -DbaseLocation=${basedir}/eclipse/eclipse -DbuildDirectory=${basedir}" />
		<exec dir="${env.JAVA17_HOME}/bin" executable="${env.JAVA17_HOME}/bin/java" failonerror="true">
			<arg line="-jar ${basedir}/eclipse/eclipse/plugins/org.eclipse.equinox.launcher_1.6.500.v20230717-2134.jar" />
			<arg line="-application org.eclipse.ant.core.antRunner" />
			<arg line="-buildfile ${basedir}/eclipse/eclipse/plugins/org.eclipse.pde.build_3.12.100.v20230825-1354/scripts/build.xml" />
			<arg line="-Ddebug=true" />
			<arg line="-Dbuilder=${basedir}" />
			<arg line="-Dbase=${basedir}/eclipse" />
			<arg line="-DbaseLocation=${basedir}/eclipse/eclipse" />
			<arg line="-DbuildDirectory=${basedir}" />
		</exec>
	</target>
	<target name="clean">
		<delete dir="${basedir}/eclipse" />
		<delete dir="${basedir}/dist"  failonerror="false" />
		<mkdir dir="${basedir}/dist" />
		<move file="${basedir}/I.TestBuild/eclipsetools.zip" todir="${basedir}/dist"/>
	</target>
</project>

通过 Ant 命令执行 build.xml 来编译代码并生成插件包:

ant -buildfile ${devops-root}/devops-dailybuild/studio/build-eclipse/build.xml -Dstudio.eclipse.path=${devops-root}/devops-ide-eclipse

← IntelliJ IDEA插件 IntelliJ IDEA插件 →