Tycho build 1: 构建插件
准备工作:
使用github上的例子:
Setp 1: 安装 Tycho Configurator
Eclipse 为 RCP and RAP 开发者已经安装了m2e,m2e是eclipse的maven集成工具。
打开eclipse,菜单进入Window->Preferences/Maven/Discovery,打开Open Catalog。
搜索Tycho Configurator,选择安装,安装完成后重启eclipse。
Setp 2: 构建一个简单插件项目
开始构建com.codeandme.tycho.plugin。在该工程上右键,选择Configure/Convert to Maven Project。
packaging必须手动输入eclipse-plugin。
该向导需要Group Id,使用你想构造组件的名字,使用类似my_product,JDT,PDE等名字。所有的项目都包含在通用的Group Id中。
Artifact Id使用你工程的名字,实际上需要匹配MANIFEST.MF中的Bundle-SymbolicName。
版本需要符合MANIFEST.MF中的Bundle-Version。以后我们将会看到如何保持这些一致。
Maven的SNAPSHOT和plug-in中的qualifier非常相似。
最后Packaging告诉Maven构建类型,设置为eclipse-plugin。
Maven将会创建一个pom.xml,使用下面的pom替换自动生成的。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tycho_example</groupId> <artifactId>com.codeandme.tycho.plugin</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> <properties> <tycho.version>0.23.0</tycho.version> </properties> <repositories> <!-- add Mars repository to resolve dependencies --> <repository> <id>Mars</id> <layout>p2</layout> <url>http://download.eclipse.org/releases/mars/</url> </repository> </repositories> <build> <plugins> <plugin> <!-- enable tycho build extension --> <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-maven-plugin</artifactId> <version>${tycho.version}</version> <extensions>true</extensions> </plugin> </plugins> </build> </project>
第9行到11行,是tycho的版本,将来tycho的版本会需要升级这一项。
为了解决mavne构建是的依赖,第13行到20行添加Mars的p2仓库。
最后的22-32行告诉tycho使用tycho插件构建。
现在,你在Problems View中看到如下错误:
每次从项目转到maven都会遇到这个错误。解决这个问题可以右键上下文菜单选择Quick Fix(快捷键Ctrl+1)。
右键项目选择Run As/Maven build... 在Goals中输入:clean install。Goals == maven lifecycle。类似make target,先删除之前的构建,然后重新构建一遍插件。
第一次构建会花费多一点时间,因为需要从maven的中央仓库下载Mars p2的依赖。最后你讲在控制台视图看到如下提示:
[INFO]
[INFO] --- tycho-p2-plugin:0.23.0:update-local-index (default-update-local-index) @ com.codeandme.tycho.plugin ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15:58 min
[INFO] Finished at: 2018-08-20T14:55:48+08:00
[INFO] Final Memory: 83M/247M
[INFO] ------------------------------------------------------------------------
现在检查project目录,会新增一个新的文件夹target。它包含构建artifacts的所有中间文件。Tycho不会刷新你的workspace,你需要手动查看target目录。
===================
未完待续。。。