User Tools

Site Tools


eclipse:eclipse_rcp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eclipse:eclipse_rcp [2016/07/15 07:19] skipidareclipse:eclipse_rcp [2023/11/01 07:15] (current) – ↷ Links adapted because of a move operation skipidar
Line 205: Line 205:
 {{http://i46.tinypic.com/2ypkbbt.png}} {{http://i46.tinypic.com/2ypkbbt.png}}
  
 +
 +==== Dependencies Management in Eclipse ====
 +
 +Documentation:
 +
 +^Location ^Documentation^
 +|**feature.xml**|<WRAP>[[http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Ffeature_manifest.html|Documentation]]</WRAP>|
 +|**plugin.xml**|<WRAP> 
 +[[http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Ffeature_manifest.html|Documentation]] \\
 +[[http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fdependencies.htm|Dependencies per GUI]]
 +</WRAP>|
 +|**MANIFEST.MF**|<WRAP>[[http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Ffeature_manifest.html|Documentation]]</WRAP>|
 +
 +
 +Eclipse Dependencies have different Levels:
 +
 +^Level ^ Describtion ^ Configuration File^
 +|OSGI| The OSGI is a specification, which defines possible jars attributes: visibility, dependency from other jars. Jars are called **bundles** here. In Eclipse **bundles=plugins** | **OSGI-INF/Manifest.MF** |
 +|Eclipse RCP| Eclipse Introduces Concepts like **Product, Feature, Application, Target**. Those are only configuration files which help to manager resources and dependencies. They do not exist after exporting the Eclipse Application to a Java Programm. | **product.xml, plugin.xml, feature.xml, target.xml**|
 +
 +
 +{{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-20-35_zps6785b520.png}}
 +
 +|OSGI Level dependencies| All OSGI dependencies - are dependencies that are defined in **MANIFEST.MF**'s **Require-Bundle** area. This is the importand dependency, which will remain after product export.|{{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-47-17_zpsfd611cda.png?300}}|
 +|Describes Product in Extension Point| The Product.xml is just a configuration files to enable forms to manage icons, and stuff. The framework retrieves the product not from this file, but from an **an associated plugin.xml**. There the product describtion is saved under an **extension point org.eclipse.core.runtime.products** |{{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-43-22_zpsaa1ec223.png?300}} {{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-41-34_zpse6acdf38.png?300}}|
 +|Contains any plugin which will be used in Product.| Plugins/Features **from Workspace** are "added", not inserted as dependencies.|{{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-35-04_zps2f9309de.png?300}}|
 +|Depends on foreign features| Dependencies to features/plugins **on remote repositories**, resolved via target platform - are defined on **Dependencies-Tab**. They can be computed automatically, by pushint the **Compute** button.  | {{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-30-41_zpse361dfe8.png?300}}|
 +||||
 +
 +
 +=== Libs dependencies in Project ===
 +If a project requires an external libraries 
 +  * create a new **plugin-project** and add those libraries to the subfolder, e.g. "lib"
 +  * add the "lib" subfolder to the **classpath** 
 +  * and **export all packages** which should be visible from outside
 +
 +This will allow to check in the libs to the version control and make the project completely portable, avoiding problems with unavailable external repos. So it can be checked out even years later and compiled again!
 +
 +{{http://i520.photobucket.com/albums/w327/schajtan/2014-02-23_23-53-12_zpse3fee24b.png?800}}
 +
 +=== Storing Libs in a local repository ===
 +A local p2 repository can be set up, by exporting a project.
 +The local repository can then be references from the product as 
 +<code>
 +"file://d:/Temp/E4Produkt/repository/"
 +</code>
 +
 +[[http://www.bsiag.com/scout/local-p2-mirrors-to-work-offline/|Here]] is the describtion about how to do it.
 +
 +
 +Using a p2-repository will allow Maven-Tycho (the headless build plugin) to resolve dependencies automatically. 
 +[[https://wiki.eclipse.org/Tycho/Target_Platform|It is capable to resolve dependencies from p2-sites, plugins. Not from directories.]]
 +
 +
 +=== Tool ===
 +
 +To analyse the dependencies there is a tool: Plug-in Dependency Visualization
 +Here is a p2 repository to install the tool which is aplugin: http://www.eclipse.org/pde/incubator/dependency-visualization/
 +
 +Open the View "Graph Plug-In Dependency"
 +
 +{{http://i520.photobucket.com/albums/w327/schajtan/2014-03-24_22-12-01_zpscaad609a.png}}
  
 ==== Dependency resolutions ==== ==== Dependency resolutions ====
Line 1133: Line 1195:
  
  
 +
 +
 +==== Download the Eclipse RCP updatesite ====
 +
 +To install Eclipse plugins offline you have to download the updatesite.
 +Here is an example to download instasearch.
 +
 +<code>
 +set eclipse_home="D:\Programme\_Development\Eclipse Mars - RCP\eclipse.exe"
 +set updatesite=http://dl.bintray.com/ajermakovics/InstaSearch/
 +set folder=d:\Temp\instasearch\
 +
 +
 +%eclipse_home% -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source %updatesite% -destination %folder%
 +%eclipse_home% -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source %updatesite% -destination %folder%
 +</code>
  
  
Line 1170: Line 1248:
 </WRAP> </WRAP>
   * Injections will only be processed in classes, which are referenced in Application Model. \\ (see [[http://www.vogella.com/tutorials/EclipseRCP/article.html#d234227e2830|On which objects does Eclipse perform dependency injection?]])   * Injections will only be processed in classes, which are referenced in Application Model. \\ (see [[http://www.vogella.com/tutorials/EclipseRCP/article.html#d234227e2830|On which objects does Eclipse perform dependency injection?]])
 +
 +
 +
 +
 ==== Target Platform ==== ==== Target Platform ====
  
eclipse/eclipse_rcp.1468567191.txt.gz · Last modified: (external edit)