Creating custom redistributable Eclipse - issue with launcher.library - eclipse

I am creating a custom version of Eclipse Neon, installing certain plugins, tweaking settings, etc. My plan is to redistribute this to everyone on my team. However I am just discovering that the plugins are being saved in a local user ~/.p2 directory that the Eclipse installer must have created or something. I would like a fully self contained Eclipse with no reference to user specific directories. I notice that in the eclipse.INI file there is indeed a reference to this local directory.
--launcher.library
C:\Users\zeroalpha\.p2\pool\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.400.v20160518-1444
When I delete it and try to launch Eclipse I get this error
How can I make a redistribute eclipse that doesn't rely on the local user ~/.p2 directory?
update: This is the error I get when launching after telling eclipse.INI to point to the launcher jar in the eclipse plugins directory instead of the local ~./p2

Modifying and "zipping up" an Eclipse installation is not the right approach for what you're trying to do. Instead, look at the capabilities of the Oomph project (the project behind Eclipse's own standard installer). Specifically, read up about Oomph Authoring to learn how to create your own installer package that includes exactly the plug-ins and configuration you want.
As #greg-449 pointed out in the coments, Lars Vogel's tutorial is also useful.

Related

Does Eclipse store any information out of its directory?

I have used Eclipse Indigo (C/C++) for sometime along with PyDev Plugin (for Python). As I messed up with the IDE (tried to tweak some core files, for fun!), I thought to install a fresh one and this time I downloaded Eclipse Indigo (for Java).
Eclipse (C/C++) was placed in C:/
Eclipse (Java) was even placed in C:/
Now when I opened Eclipse (Java), I observed two things:
The Eclipse's title bar still showing <C/C++ Eclipse>
There was a python's project file still opened up which I worked on Eclipse C/C++ IDE. Also, there was an PyDev's error popped up (mentioning it wasn't installed).
I have verified "Installed Plugins" list and didn't find any plugin related to C/C++ or python.
Now, I have got one question:
As I searched over google and found that Eclipse doesn't store anything beyond its directory, How does this above things are showing up??
There might be some Temp/ Cache files stored. However, I searched my drive with "Eclipse" and "PyDev" as keywords and found nothing.
I even searched for registry keys but couldn't find anything.
What exactly is happening and how do remove Eclipse completely?
TL;DR: using the new Eclipse (Java), select "File > Switch Workspace... > Other...", and create a new directory (e.g. java-wks) for all projects you will do using the new Eclipse.
The long explanantion is that Eclipse stores data in two locations:
The eclipse installation directory itself: contains the plug-ins you install (including the ones already installed in the package you downloaded) and some runtime configuration parameters (see eclipse/config.ini) related to how Eclipse itself should run (e.g. where to find the JRE to execute Eclipse itself, how much memory to allocate etc.)
The workspace(s), where your data (projects and source code) and all personal configuration parameters are stored. This is where Eclipse remembers where your source code is, which file(s) where opened when you last exited, which perspective was active (in your case C/C++ Eclipse), your preferences, launch configurations, breakpoints, etc.
For each Eclipse installation on your system (eclipse folder), you can have as many workspaces as you want (it helps to isolate work). There are various ways to select the workspace location: using the -data <path-to-workspace> option on the command-line, using the popup Eclipse normally shows when starting up (but you may have disabled it), or using "File > Switch Workspace...".
You can also use the same workspace from different Eclipse installations (though not at the same time), but things will not work well if you have different plug-ins installed in each: if one installation stores in the workspace "this is a Python project, and the current perspective is C/++", and the other installation does not have the Python and/or C++ plug-ins installed, it will not known what to do with these info. This is why you see the errors you reported.
For your case, my guess is that under Windows the default workspace location is somewhere in your home directory, and the new (Java) Eclipse is using that, but failing to make sense of the Python and C++ related preferences and projects the previous Eclipse stored there. You need to use a fresh workspace not "polluted" with Python and C++ stuff if you want the Java Eclipse to work without errors (or install the Python and C++ plug-ins in the new Eclipse). You may want to enable the Prompt for workspace on startup preference (in "General > Startup and Shutdown > Workspaces") if it is not to control this easily each time Eclipse starts.

How to manually install software/plugin to Eclipse IDE?

I have downloaded a RAR file from the following location, to be (manually) installed to Eclipse (Helios). How can I perform the manual installation?
http://sourceforge.net/projects/eclipsesql/files/SQL%20Explorer%20RCP%20%28exc%20JRE%29/3.6.1/sqlexplorer_rcp-3.6.1.macosx.cocoa.x86.tgz/download
Instead of putting it directly into the plugins directory, it's better to use the dropins directory as this was created just for this purpose. Have a look here: http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins
For sqlexplorer: do not download the full RCP version (as your link does), this one is standalone. Get this one instead: http://sourceforge.net/projects/eclipsesql/files/SQL%20Explorer%20Plugin/3.6.1/sqlexplorer_plugin-3.6.1_SR2.zip/download
Extract this to $eclipse_home$\dropins\sqlexplorer and restart Eclipse.
BUT: Using the SqlExplorer Update Site (http://eclipsesql.sourceforge.net/) would be an even better option (Help>Install new Software)
I have tried the installation with the explanation about the dropins folder and had to tweak it like that:
Unzip the distribution into your eclipse installation directory under the folder dropins. Your structure should be:
eclipse/
dropins/
eclipse/
features/
plugins/
Remove all other files and directories. There is some missing piece (file contents.xml), so that the distribution is no real p2 repository which leads to an error. The directories plugins and features are sufficient.
Restart your eclipse (I have done it with option -clean, not sure if that is necessary).
SQLExplorer is then installed and visible in the help, in different menus and with a new perspective.
I even was able to use it to have a look at my SQLite3 database of a rails3 application. Wow!! So I will give it a try.
From their website (http://www.sqlexplorer.org/):
Eclipse Plugin
Download
Download the Eclipse SQL Explorer plugin and extract the zip file in your eclipse directory (requires Eclipse 3.3 or better).
After restarting eclipse with the -clean option, a new SQL Explorer perspective should be available.
Eclipse Update Site
You can install and update Eclipse SQL Explorer via the eclipse update mechanism. The update site for Eclipse SQL Explorer is http://eclipsesql.sourceforge.net/
I always go for the update site option if they present it, it's easier and lets you do updates easily. To use the update mechanism just select Help > Insall New Software... then enter the update site, press Add and go through the wizard.

Backup Eclipse plugins and settings

I'm using Eclipse and have plenty of plugins installed and configured to my needs. Is there any good way to backup these plugins and the configuration of them. I want to be able to replay these plugins in futures eclipse version (as long as they are compatible) and on different PCs.
I know I could simply archive the whole eclipse/ folder, but I find this a little inelegant.
There are two parts to your question:
Copying your settings between Eclipse installs
Copying your installed plugins between Eclipse installs
#1 is easy to do. You can export your Eclipse preferences from the File -> Export... -> Preferences. The resulting file contains all of your preferences for each installed plugin. It is portable between Eclipse installs and versions.
#2 is not really the "Eclipse" way of doing things. It is possible, but you need to structure your installed plugins differently. Rather than using the standard update manager to install your plugins, you can use the dropins folder. What you need to do is to copy every feature and plugin that you want to be shared across multiple installs into a zip file with the following structure:
eclipse/
features/
plugins/
Then you can unzip the file into the dropins folder of all the Eclipses that you want.
More information on dropins:
http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/p2_dropins_format.html
P2 installation replication is a tool to help you backup installed plug-ins, you could install it via Eclipse Marketplace.
According to the settings of configuration, most of them are persisted in your workspace. So you could backup your workspace/.metadata folder.
While inelegant, archiving the entire eclipse folder is also insufficient. I think you want to archive the following:
The entire eclipse installation folder.
The .metadata folder of every workspace.
By doing this, you will not only preserve the plugins and their settings, but you will also preserve an eclipse installation in which you know your plugins work.
I've made small service for myself to synchronize Eclipse settings. Currently it supports Java Templates + Bash Aliases. Could be useful for someone else.
http://confsync.com

Specific plugins per workspace

I came across this post and wondered if there is a way to activate only a few of all of my installed plugins depending on the workspace I currently work in.
For example - If I organized my workspaces like this
/workspaces
/java
/jee
/php
...
I don't need the Android-Plugin if I'm working on my Java EE-Projects and so on.
I also came accross this, suggesting to deactivate some capabilities for each workspace. But this not an option, as apparently no plugin is registered as capability.
Thanks, m
Edit: BTW, I am using Eclipse 3.5 Galileo
Maybe you can achieve your goal but it needs lots of "customization work" so I would not do it for myself :)
Create a "minimal" Eclipse install with plugins you use all of your workspaces.
Create one dropins folder for every workspace and put all of your "workspace-specific plugins" into that folder.
Create an Eclipse shortcut for all workspaces and use something like "-data _workspacedir_ -vmargs -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=_dropindir_" in the shortcut.
Start eclipse with one of your new shortcuts.
Note that in this case you cannot switch workspace within Eclipse, you have to close the current one and start the new one using the corresponding shortcut.
UPDATE: I have found some Eclipse feature request for making this kind of setup easier if they will be implemented:
Software Update must allow to install plug-ins into extension location
Support for multiple bundle pools
You can use a different configuration folder for each Eclipse instance using the -configuration option when starting Eclipse.
On Windows, I would use a batch file (e.g. run-eclipse.cmd) which looks a bit like this (a bit different on Unix, more complex on OS X because of the app packaging):
eclipsec.exe -clean -configuration configs/%1/configuration
Execute it with your environment ID (e.g. run-eclipse.cmd java). I use eclipsec because I need the console output, but you can use the plain eclipse.exe executable. The -clean is not mandatory either.
Under my Eclipse installation folder, I will have a configs folder and under this folder I will have multiple configurations. Each config folder can have its' own plugins and folders. AFAIK, if you install plugins they will be installed in your configuration folder and not your main installation folder.
The structure you get is like this:
Eclipse Folder
plugins
features
configs
java
plugins
features
configuration
Eclipse plugins are expected to start only as needed, in a lazy manner. I'm not saying that all behave exactly that way, but if you write your own plugin, you'll see this is how the technology works, your plugin gets called only as needed.
So in Eclipse, if you configure your starting Perspective (Java for me) to have only the Views you need, the plugins that are used for other views should not be started.
To do this, take the view away and save your perspective (Windows - Save perspective as).
In addition, in Ganymede, in Windows - Preferences - General - Startup and Shutdown,
there is a list of plugins that should be started on startup, so you can edit that list.
I didn't try to see if this works per workspace though.
Although my solution won't let you install plugins per workspace but will solve the problem.
The best way i found to do this is using different eclipse copies:
Extract officialeclipse.zip to two different places and install plugins you like per eclipse.
A bit late answer but if you want to manage many workspaces shortcut the following tool is very simple and helpful : http://www.xdreamteam.ch/downloads/eclipselauncher/
I use it for sorting my projects by customers and workspaces, and it launch the right workspace with all the necessary configurations needed for each.

Eclipse doesn't load plugins in the dropins folder

I just downloaded Eclipse SDK 3.5.1 and want to install some add ons such as GEF, EMF, etc.
I downloaded all the zip files for everything I needed and decided to install them in the dropins folder. I read http://wiki.eclipse.org/Equinox_p2_Getting_Started and structured my dropin folder as specified:
eclipse/
dropins/
emf/
eclipse/
features/
plugins/
gef/
eclipse/
features/
plugins/
... etc ...
When I start up Eclipse it does not recognize any of the features or plugins I have put into the structure above. Any ideas?
This is probably a bit late to help you, but maybe it will help somebody else. I had a similar problem, so I posted a question to the Eclipse Community Forums asking about how to get a report about missing dependencies. Mickael Istria's helpful reply is shown below for those who aren't members of that forum:
You can start or diag the OSGi Console and try to start the bundle manually. The console will print you some warnings. See http://eclipse.org/equinox/documents/quickstart.php and for more details.
shell> eclipse -console
[...Eclipse starts up...]
osgi> diag your.unresolved.bundle
[...shows you unresolved constraints...]
In my case, I tried several directory structures that I thought should work, before I found one that did:
dropins/
myPlugin
plugins/
depPluginDir1/*
depPluginDir2/*
Coming back years later to solve a similar problem..., I found the following web pages to be helpful: Where is My Bundle, Plug-ins are not picked up from the dropins/ folder.
First of all, run eclipse with -clean to ensure p2 fully rescans the dropins directory and sees your plugins.
If it still doesn't load you can use p2 debugging to see what the problem is also. For some strange reason p2 doesn't log dropins issues unless you explicitly turn it on with the following steps:
Create an .options file in the eclipse folder where you start up Eclipse with the following content:
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
Then run eclipse with the following arguments (last argument is the path to the .options file you just created):
eclipse -clean -console -consoleLog -debug /path/to/.options
PS, I have created this bugzilla to request it be turned on as a default. You can vote/track making this logging the default there.
PPS, #kc2001's suggestion is a good one also once you have narrowed down on what plugin has the issue and you want to troubleshoot it more.
Some relevant links:
http://wiki.eclipse.org/Equinox_p2_Getting_Started
http://www.eclipse.org/forums/index.php/m/116635/
http://www-01.ibm.com/support/docview.wss?uid=swg21428463
I suggest that you try to install those features via the update manager. EMF and GEF are standard features from Eclipse.org, there's no reason not to install them in Eclipse's main p2 repository folder (it is easy to uninstall them, in case that is your concern).
Have a look at the error log view (Window -> Show View -> Error Log) to see why they didn't load. My guess is that they are missing a dependency, but without more information it is difficult to answer your question. I also suggest looking at Help -> About Eclipse -> Installation Details to see what exactly is installed.
Something that has just solved this very same issue for me: start eclipse with the command line parameters -clean -console -consoleLog. The weird thing: with -clean -console, it didn't work. Only after I added -consoleLog, the bundles were recognized.
This ended up being an issue with Eclipse for me. Placing the plugin jar in each of the folders suggested, running as admin, etc. didn't work.
What did solve it was downgrading from a Juno package to Indigo. You can find older versions of Eclipse here.
The local archive plug-ins work if you have downloaded an update site plug-in. In that case the dropins might not work.
About the dropin structure, it always worked for me, but I never use the eclipse folder inside my own ones, only the plugins and features. Did you extract the zip file to that structure?
If yes, it should be worth checking the Error log after Eclipse started, there might be some unresolved dependecies listed.
Don't place the zip files manually like that.
Use the wizard within Eclipse to install a local archive plug-in.