- 浏览: 31353 次
- 性别:
- 来自: 济南
附件中是我总结的使用tycho管理Eclipse插件项目的架构图。
附有构建项目实例代码。
下面简要说明下项目架构
1.创建parent项目itp02-parent
其中pom.xml内容如下:
2.我们创建普通的Eclipse 插件,名称tycho.demo.itp02.bundle
其pom.xml是这样定义的:
在这个项目中,我们使用了如下代码:
这里的PomFirst实际上来自其它的工程(pomfirst-bundle)
3.下面来看下它的pom文件是如何定义的:
去overview选项卡,你会发现它的packaging:jar
这里它也属与第三方jar包,不过不是从外部引用的2进制jar,而是我们自己定义的jar。
OK,接下来咱看看真正的第三方jar如何定义:
4.我们创建名称为pomfirst-thirdparty工程,其中pom文件内容如下:
我们将其打成了bundle。
5.最后我们把pomfirst-bundle,pomfirst-thirdparty交给itp02-pomfirst-parent来管理,这个parent的pom文件如下:
为了保证我们之前的eclipse-plugin工程(tycho.demo.itp02.bundle)的成功创建,我们必须先构建我们引用的第三方包(这里说的就是被打成jar和bundle的工程)
6.构建测试插件tycho.demo.itp02.bundle.tests
pom.xml内容如下;
7.为了实现在线更新,我们创建tyco.demo.itp02.feature,其中pom的内容如下:
8.创建站点工程:
附有构建项目实例代码。
下面简要说明下项目架构
1.创建parent项目itp02-parent
其中pom.xml内容如下:
<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> <prerequisites> <maven>3.0</maven> </prerequisites> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <properties> <tycho-version>0.20.0</tycho-version> </properties> <modules> <module>tycho.demo.itp02.bundle</module> <module>tycho.demo.itp02.bundle.tests</module> <module>tyco.demo.itp02.feature</module> <module> tyco.demo.itp02.p2Update</module> </modules> <dependencies> <dependency> <groupId>tycho.demo.itp02</groupId> <artifactId>pomfirst-bundle</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>tycho.demo.itp02</groupId> <artifactId>pomfirst-thirdparty</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies> <repositories> <repository> <id>helios</id> <layout>p2</layout> <url>http://download.eclipse.org/releases/helios</url> </repository> </repositories> <build> <plugins> <plugin> <groupId>org.eclipse.tycho</groupId> <!-- The Tycho Maven Plugin provides extensions to build Eclipse projects. --> <artifactId>tycho-maven-plugin</artifactId> <version>${tycho-version}</version> <extensions>true</extensions> </plugin> <plugin> <groupId>org.eclipse.tycho</groupId> <!-- Tycho Target Platform Configuration Plugin --> <artifactId>target-platform-configuration</artifactId> <version>${tycho-version}</version> <configuration> <pomDependencies>consider</pomDependencies> </configuration> </plugin> </plugins> </build> </project>
2.我们创建普通的Eclipse 插件,名称tycho.demo.itp02.bundle
其pom.xml是这样定义的:
<?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>tycho.demo.itp02.bundle</artifactId> <packaging>eclipse-plugin</packaging> </project>
在这个项目中,我们使用了如下代码:
/******************************************************************************* * Copyright (c) 2008, 2011 Sonatype Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Sonatype Inc. - initial API and implementation *******************************************************************************/ package tycho.demo.itp02.bundle; import tycho.demo.itp02.pomfirst.PomFirst; public class ITP02 { public String getMessage() { return new PomFirst().getMessage(); } }
这里的PomFirst实际上来自其它的工程(pomfirst-bundle)
3.下面来看下它的pom文件是如何定义的:
<?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-pomfirst-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>pomfirst-bundle</artifactId> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <executions> <execution> <id>bundle-manifest</id> <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
去overview选项卡,你会发现它的packaging:jar
这里它也属与第三方jar包,不过不是从外部引用的2进制jar,而是我们自己定义的jar。
OK,接下来咱看看真正的第三方jar如何定义:
4.我们创建名称为pomfirst-thirdparty工程,其中pom文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-pomfirst-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>pomfirst-thirdparty</artifactId> <packaging>bundle</packaging> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Embed-Dependency> plexus-utils </Embed-Dependency> <_exportcontents> org.codehaus.plexus.util.*;version="2.0.7" </_exportcontents> <Bundle-ClassPath>{maven-dependencies}</Bundle-ClassPath> <Embed-Transitive>true</Embed-Transitive> <Embed-Directory>jars</Embed-Directory> <_failok>true</_failok> <_nouses>true</_nouses> </instructions> </configuration> </plugin> </plugins> </build> </project>
我们将其打成了bundle。
5.最后我们把pomfirst-bundle,pomfirst-thirdparty交给itp02-pomfirst-parent来管理,这个parent的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?> <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> <prerequisites> <maven>3.0</maven> </prerequisites> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-pomfirst-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <properties> <tycho-version>0.20.0</tycho-version> <manifest-location>META-INF</manifest-location> </properties> <modules> <module>pomfirst-bundle</module> <module>pomfirst-thirdparty</module> </modules> <dependencyManagement> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> <version>2.0.7</version> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>2.3.1</version> <configuration> <archive> <manifestFile>${manifest-location}/MANIFEST.MF</manifestFile> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.1.0</version> <configuration> <manifestLocation>${manifest-location}</manifestLocation> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
为了保证我们之前的eclipse-plugin工程(tycho.demo.itp02.bundle)的成功创建,我们必须先构建我们引用的第三方包(这里说的就是被打成jar和bundle的工程)
6.构建测试插件tycho.demo.itp02.bundle.tests
pom.xml内容如下;
<?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>tycho.demo.itp02.bundle.tests</artifactId> <packaging>eclipse-test-plugin</packaging> </project>
7.为了实现在线更新,我们创建tyco.demo.itp02.feature,其中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> <artifactId>tyco.demo.itp02.feature</artifactId> <packaging>eclipse-feature</packaging> <parent> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> </project>
8.创建站点工程:
<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> <artifactId>tyco.demo.itp02.p2Update</artifactId> <packaging>eclipse-repository</packaging> <parent> <groupId>tycho.demo.itp02</groupId> <artifactId>itp02-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <build> <plugins> <plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-p2-director-plugin</artifactId> <version>${tycho-version}</version> <configuration> <formats> <win32>zip</win32> <linux>tar.gz</linux> <macosx>tar.gz</macosx> </formats> </configuration> <executions> <execution> <id>materialize-products</id> <goals> <goal>materialize-products</goal> </goals> </execution> <execution> <id>archive-products</id> <goals> <goal>archive-products</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
发表评论
-
打造eclipse product
2015-01-16 16:08 531请参考:http://www.ibm.com/develope ... -
关于插件卸载后plugin文件下扔保留插件文件的解释
2015-01-16 14:24 553But why aren't uninstalled bund ... -
RCP开发遇到SWTError: swt no more handles 问题解决
2014-11-02 21:05 761应用场景:在打开的编辑器中创建类图,每打开一次都要用到类图、字 ... -
rcp插件代码打包后出现中文乱码
2014-11-02 21:06 412使用message文件对含义中文的类进行国际化。在类上单击右键 ... -
插件开发中与spring集成遇到的问题
2014-10-31 19:43 1019场景: 1.我把spring的所有jar包到放到一个插 ... -
Eclipse撤销恢复机制分享
2014-10-31 19:41 2921来看下命令模式的高级篇。redo/undo操作的实现 1.首先 ... -
基于jdt的源码搜索
2014-10-31 19:40 1195Eclipse 为程序员提供了强大的文本搜索功能,程序员可以方 ... -
搜索Jar包中的类或包
2014-10-31 19:37 677import java.io.File; import jav ...
相关推荐
maven-tycho-plugin-0.10.0.jar
maven-tycho-第三方 通过 Maven 和 Tycho 在 Eclipse 插件中使用第三方依赖项。 来源 教程: : 源代码: :
tycho-eclipse-plugin-原型这个原型将创建一个具有嵌套结构的多模块项目: __artifactId__ : parent pom project | |---__artifactId__.core : eclipse-plugin | |---__artifactId__.feature: eclipse-feature | |--...
这是一个易于使用的Maven3插件,负责Eclipse RCP环境中的第三方依赖关系管理的自动化。 你为什么要打扰? 您是否熟悉Maven,Gradle或其他任何精美工具中的自动依赖项管理? 您只需定义一个项目描述符,添加一堆...
Eclipse Tycho测试项目
它有助于将软件工程流程从内部转换为GitHub基础架构。 Maven Tycho可能非常复杂。 该项目为Maven Tycho的新开发人员提供帮助。 该项目提供了自动执行Eclipse RCP构建过程的核心功能,并有助于设置该过程。 要求 此...
Maven+Tycho的打包Eclipse Product,图文并茂教程,包括32bit和64bit
大多数规则非常简单,可用于维护多插件项目中的一致性。地位如何建造该项目是使用Maven构建的。 要在本地构建,只需执行命令行: mvn clean install您也可以使用此命令选择it测试mvn invoker:run -Dinvoker.test=...
tycho-packaging-plugin + buildnumber-maven-plugin的测试用例 这是编写的最小测试用例,用于调查tycho-packaging-plugin和buildnumber-maven-plugin 。 测试用例在Tycho 0.22.0时成功,但在0.23.0或更高版本中...
maven-tycho-plugin-0.11.1.jar
maven-tycho-plugin-0.11.0.jar
maven-tycho-plugin-0.9.0.jar
maven-tycho-plugin-0.8.0.jar
maven-tycho-plugin-0.7.0.jar
maven-tycho-plugin-0.6.0.jar
maven-tycho-plugin-0.5.0.jar
idempiere.maven.tycho.build.extra.bundle 核心插件的Groupt建造额外的插件如何建立额外的插件克隆你的idempiere为[ROOT-HOME] / idempiere 准备额外的插件克隆库(project.extra.bundle)[ ]至[ROOT-HOME] /...
Xtext Tycho示例这是一个演示项目,显示了如何使用tycho / maven构建Xtext项目。 它具有以下特点: 项目基于Xtext和Xtend 2.7.3 在fornax mwe2插件的帮助下从Maven运行xtext生成器mwe2工作流程生成的文件未检入,...
m2e代码质量 该项目提供了Eclipse插件,它们将Checkstyle和PMD的Maven和Eclipse插件联系在一起。 在使用Checkstyle或PMD的Maven项目... 这些Eclipse插件是使用Tycho Maven插件构建的。 OSGi,Eclipse和Maven的结合并不