Difference between revisions of "Eclipse"

From Freephile Wiki
Jump to navigation Jump to search
(fixes typo)
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{highlight|text=This page was last updated in 2009.  I personally have been using [[NetBeans]] instead of Eclipse [[User:Freephile|freephile]] ([[User talk:Freephile|talk]]) 21:25, 30 January 2016 (EST)}}
 
 
== Intro  ==
 
== Intro  ==
[http://www.eclipse.org/ Eclipse] ([http://wiki.eclipse.org/Main_Page wiki site]) is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the application development lifecycle.  A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform.
+
 
 +
[http://www.eclipse.org/ Eclipse] is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the application development lifecycle.  A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform.
  
 
As the project, community and resources are numerous, this page serves to note specific information that will help you use and interact with the technology most efficiently '''with a focus on the PHP developer'''.
 
As the project, community and resources are numerous, this page serves to note specific information that will help you use and interact with the technology most efficiently '''with a focus on the PHP developer'''.
  
 
== Installation ==
 
== Installation ==
I like to have control over what I have installed, and also like to know what is going on in my computer.  For simplicity's sake, you might want to check out [http://www.easyeclipse.org/site/home/ Easy Eclipse]  I didn't find that site until after spending a couple days installing, uninstalling, re-installing, and tweaking Eclipse.
 
=== For the impatient ===
 
<ol>
 
<li>Download the file, untar it into ~/opt </li>
 
<li> and make an executable launcher to start the program (/home/user/bin/eclipse)
 
<source lang="bash">
 
export MOZILLA_FIVE_HOME="/usr/lib/mozilla/"
 
export ECLIPSE_HOME="$HOME/opt/eclipse"
 
  
$ECLIPSE_HOME/eclipse $*
+
Getting and installing Eclipse used to be a lot more difficult than it is today.  In late 2008, it is '''still''' not as simple as <code>sudo apt-get install eclipse</code>.  You can do that, but '''the installed version will be 3.2, which dates from 2006 and will fail to meet requirements for recent modules like PDT'''.  What's worse, the system can NOT upgrade itself.  See https://help.ubuntu.com/community/EclipseIDE for more accurate help in installing Eclipse.  The short instructions are to install a Java Virtual Machine (which you can use synaptic or apt-get for) and to '''download''' Eclipse and install it manually.
</source>
 
</li>
 
<li> start eclipse and add the extras through the 'help' menu </li>
 
</ol>
 
=== Long story ===
 
Getting and installing Eclipse is still a lot more difficult than it should be (owing in part to the fact that it continues to grow in size, scope and complexity).  In late 2008, it is '''still''' not as simple as <code>sudo apt-get install eclipse</code>.  If you do that using Ubuntu Hardy Heron, the installed version will be 3.2, which dates from 2006 and '''will fail to meet requirements for recent modules like PDT'''.  What's worse, the eclipse system can NOT upgrade itself.  See '''https://help.ubuntu.com/community/EclipseIDE''' for more accurate help in installing Eclipse.  The short instructions are to install a Java Virtual Machine (which you can use synaptic or apt-get for) and to '''download''' Eclipse and install it manually.  Add to that a lot of additional module installations.
 
  
In spite of any relative ease compared to the way it was "back in the day" (when just installing Java on Linux took about a decade and three lawyers), it's a large project, with Java as a dependency and many applications that you can install on top of the framework.  So, an exact description of how to get setup is important.  In addition to the foregoing details, http://groups.drupal.org/node/6261 describes how to get yourself setup with a completely free development environment.  It starts with Ubuntu (the Debian-based desktop distribution) and ends with configuring Eclipse for working with Drupal coding standards. (Now nicknamed appropriately 'Drubuntu'.)
+
In spite of any relative ease compared to the way it was "back in the day" (when just installing Java took about a decade and three lawyers), it's a large project, with Java as a dependency and many applications that you can install on top of the framework.  So, an exact description of how to get setup is important.  In addition to the foregoing details, http://groups.drupal.org/node/6261 describes how to get yourself setup with a completely free development environment.  It starts with Ubuntu (the Debian-based desktop distribution) and ends with configuring Eclipse for working with Drupal coding standards. (Now nicknamed appropriately 'Drubuntu'.)
  
The http://wiki.eclipse.org/PDT/Installation site offers good details on getting a clean and fully updated installation working, especially if you have particular needs for an older version. Similarly, this HOWTO seems like it's complete and tested, although I didn't follow it.  http://www.howtoforge.com/setting-up-eclipse-pdt2.0-on-eclipse3.4-ganymede
+
The http://wiki.eclipse.org/PDT/Installation site offers good details on getting a clean and fully updated installation working.
  
== Features ==
+
== Components ==
The word "features" in the eclipse world refers to '''components''' that you can install on top of the core platform.  It is the components which are actually the things that allow you to do the things you think of when "using" eclipse.  Features in eclipse is similar to the concept of installing applications on top of an operating system.
 
 
 
As a [http://www.eclipse.org/home/categories/languages.php Language IDE] eclipse offers tools for just about every programming language (click on "Related EPIC [http://www.eclipseplugincentral.com/ Plugins]" in the bottom panel).  It has also expanded beyond what you might consider when you think "Integrated Development Environment" to include not just advanced tools like UML modeling, but even support for Service Oriented Architectures.
 
 
 
=== Remote System Explorer ===
 
The '''Target Management (RSE)''' feature allows you to operate on your remote systems like it was the local system, and includes a shell where you can execute commands plus process monitor and more.
 
 
 
http://www.eclipse.org/dsdp/tm/
 
  
 +
As a [http://www.eclipse.org/home/categories/languages.php Language IDE] eclipse offers tools for just about every programming language (click on "Related EPIC Plugins" in the bottom panel).  It has also expanded beyond what you might consider when you think "Integrated Development Environment" to include not just advanced tools like UML modeling, but even support for Service Oriented Architectures.
  
 
=== Web Tools Platform ===
 
=== Web Tools Platform ===
The Web Tools Platform is a "feature" in Eclipse providing the foundation for, well, web tools.  You'll need to get this in order to install PDT.
 
 
=== Dynamic Languages Toolkit Core Frameworks ===
 
JavaScript, Ruby, TCL, Python
 
  
 
=== Subclipse ===
 
=== Subclipse ===
 
[http://subclipse.tigris.org/ Subclipse] is an Eclipse Team Provider plug-in providing support for Subversion within the Eclipse IDE. [http://www.newt.com/java/eclipse/ this Eclipse HOWTO] covers subclipse installation and a couple other initial configuration items.  I believe with the release of Ganymede (2008) that subversion integration is included, so I'd have to learn what the differences are between the subclipse project, and any subversion integration which is pre-packaged with the eclipse platform.
 
[http://subclipse.tigris.org/ Subclipse] is an Eclipse Team Provider plug-in providing support for Subversion within the Eclipse IDE. [http://www.newt.com/java/eclipse/ this Eclipse HOWTO] covers subclipse installation and a couple other initial configuration items.  I believe with the release of Ganymede (2008) that subversion integration is included, so I'd have to learn what the differences are between the subclipse project, and any subversion integration which is pre-packaged with the eclipse platform.
 
Subclipse 1.4.6 is now available for Eclipse 3.2+ (Eclipse 3.2/Callisto, 3.3/Europa, 3.4/Ganymede +)
 
# Start eclipse
 
# Click Help -> Software updates -> Available Software -> Add Site
 
# Enter <code>http://subclipse.tigris.org/update_1.4.x</code> in the dialog, click OK
 
# Tick the box next to the new source, and click "Install"
 
  
 
{{Ambox |
 
{{Ambox |
 
| text = One point of note is that sometimes you may want to get a 'minor' release upgrade (1.x.1 -> 1.y.1) for an installed plug-in such as subclipse.  By default, the Eclipse Update Manager will not update you to a new minor release. In other words, if you have release 1.0.3 installed, it will update you to a 1.0.4 release, but it will not update you to a 1.1.0 or 1.2.0 release. You can change this in the Eclipse preferences. [http://subclipse.tigris.org/upgrade.html Open the Eclipse Preferences] and click on the Install/Update option.}}
 
| text = One point of note is that sometimes you may want to get a 'minor' release upgrade (1.x.1 -> 1.y.1) for an installed plug-in such as subclipse.  By default, the Eclipse Update Manager will not update you to a new minor release. In other words, if you have release 1.0.3 installed, it will update you to a 1.0.4 release, but it will not update you to a 1.1.0 or 1.2.0 release. You can change this in the Eclipse preferences. [http://subclipse.tigris.org/upgrade.html Open the Eclipse Preferences] and click on the Install/Update option.}}
 
{{Messagebox |
 
| type = failure
 
| text = to get Subclipse working on my Ubuntu Intrepid Ibex system, I had to install the Java bindings for Subversion (see http://subclipse.tigris.org/wiki/JavaHL) and also modify my eclipse.ini settings}}
 
<source lang="bash">
 
# provides the JavaHL libraries
 
sudo apt-get install libsvn-java
 
</source>
 
Add to eclipse.ini
 
<source lang="bash">
 
-Djava.library.path=/usr/lib/jni
 
 
</source>
 
  
 
=== PHPEclipse ===
 
=== PHPEclipse ===
Line 73: Line 29:
  
 
=== PHP Developer Tools (PDT) ===
 
=== PHP Developer Tools (PDT) ===
The [http://www.eclipse.org/pdt/ PDT] project is the reference environment for PHP Developers.
+
The [http://www.eclipse.org/pdt/ PDT] project is the reference environment for PHP Developers.  
  
 
Installing the PDT is very simple, and the steps are listed at https://help.ubuntu.com/community/EclipsePDT  The wiki for the project is at http://wiki.eclipse.org/index.php/PDT
 
Installing the PDT is very simple, and the steps are listed at https://help.ubuntu.com/community/EclipsePDT  The wiki for the project is at http://wiki.eclipse.org/index.php/PDT
Line 84: Line 40:
 
See
 
See
 
http://wiki.eclipse.org/IRC_FAQ#How_do_I_install_a_project_with_multiple_dependencies.3F  Again, you'll probably want to REMOVE the 3.2 version and install a more recent version by hand because you can't upgrade one major release to the next.
 
http://wiki.eclipse.org/IRC_FAQ#How_do_I_install_a_project_with_multiple_dependencies.3F  Again, you'll probably want to REMOVE the 3.2 version and install a more recent version by hand because you can't upgrade one major release to the next.
 
=== Others ===
 
Here are some that I haven't checked or added yet, from http://jhcore.com/2008/06/26/eclipse-34-ganymede-on-ubuntu/
 
* EclEmma is a great code coverage tool. Update site: http://update.eclemma.org/
 
* Subclipse is the best Subversion plugin I have come across. Update site: http://subclipse.tigris.org/update_1.2.x
 
* PyDev one of the best editors I have come across (Code completition, refactoring, etc.). Update site: http://pydev.sourceforge.net/updates/
 
* Mercurial Excellent Distributed Version Control System (DVCS) tool inside Eclipse. Update site: http://www.vectrace.com/eclipse-update/
 
* Regular Expressions can be easily tested with this plugin. Update site: http://brosinski.com/regex/update/
 
* Maven the Ant-replacement build tool for Java. Update site: http://m2eclipse.sonatype.org/update/
 
* HTTP4e - HTTP Client for web development, web services, soap and rest http://http4e.roussev.org/
 
 
 
== Alternates ==
 
Aside from installing Eclipse and plugins "the good old-fashioned way", you can also find many Vendor-supplied gratis distributions usually with a hook into their revenue-generating business.
 
 
=== Aptana Studio ===
 
http://www.aptana.com/studio
 
Their no-cost version is pretty complete, and the pro version is almost as cheap as they come at $99 The pro version adds SFTP capability which I don't understand since you can get Target Management RSE for free -- and the latter seems more powerful from the description.  I don't use it, and haven't compared Aptana to the free Eclipse, but I figured I'd mention it in case someone is looking for a product that comes with paid technical support.
 
 
=== Polarion ===
 
Polarion offers some additional features for use with Subversion such as LDAP authentication
 
http://www.polarion.com/products/eclipse/
 
  
 
=== Zend Studio for Eclipse ===
 
=== Zend Studio for Eclipse ===
Zend Studio is similar to the PDT (in fact they originated or contribute to the PDT project), but it is not free.
+
Zend Studio and other IDEs are similar to the PDT, but are not free.
* http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1268.html
+
* http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1268.html  
 
* http://www.zend.com/en/products/studio/
 
* http://www.zend.com/en/products/studio/
  
 
== Extras ==
 
== Extras ==
 
Due to it's extensible nature, any given project from Drupal to Symfony can create plugins for Eclipse that make developing for that particular Content Management System or Web Application Framework more enjoyable (automatic syntax helpers for the defined methods of the system) plus other features.  For example, the Symfony framework includes many command-line tools and it's configuration is written in YAML.  The [http://noy.cc/symfoclipse/ Symfoclipse plugin] makes these tools available from the IDE and provides YAML authoring and validation.
 
Due to it's extensible nature, any given project from Drupal to Symfony can create plugins for Eclipse that make developing for that particular Content Management System or Web Application Framework more enjoyable (automatic syntax helpers for the defined methods of the system) plus other features.  For example, the Symfony framework includes many command-line tools and it's configuration is written in YAML.  The [http://noy.cc/symfoclipse/ Symfoclipse plugin] makes these tools available from the IDE and provides YAML authoring and validation.
 
See Also: [[http://drupal.org/node/75242 Configuring your Eclipse system for Drupal]]
 
 
The [http://eclipseecf.blogspot.com/ Eclipse Communication Framework] makes things possible such as http://www.coffee-soft.org/
 
  
 
== Upgrading ==
 
== Upgrading ==
It seems that Eclipse will not allow you to upgrade the system itself from Eclipse 3.2 to Eclipse 3.3 to Eclipse 3.4 to get Eclipse to work with the recent releases of PDT or PHPEclipse.  Instead, you have to install the base Eclipse you want, and get the specific bundles that will work with that base.
+
It seems that Eclipse will not allow you to upgrade the system itself from Eclipse 3.2 to Eclipse 3.3 to Eclipse 3.4 to get Eclipse to work with the recent releases of PDT or PHPEclipse.  Instead, you have to install the base Eclipse you want, and get the specific bundles that will work with that base.  
  
 
{{ambox|
 
{{ambox|
| text = the Eclipse Foundation coordinates an update to the technology on an annual basis (this process is called a "Release Train") and has been doing so every June since 2003.
+
| text = the Eclipse Foundation coordinates an update to the technology on an annual basis (this process is called a "Release Train") and has been doing so every June since 2003.  
; 2006 : Eclipse 3.2 / Calisto
+
; 2006 : Eclipse 3.2 / Calisto <nowiki>http://download.eclipse.org/releases/calisto/ </nowiki> discovery site
<nowiki>http://download.eclipse.org/releases/calisto/ </nowiki> discovery site
+
; 2007 : Eclipse 3.3 / [http://www.crn.com/software/200001763 Europa] <nowiki>http://download.eclipse.org/releases/europa/ </nowiki> discovery site
; 2007 : Eclipse 3.3 / [http://www.crn.com/software/200001763 Europa]
+
; 2008 : Eclipse 3.4 / [http://www.eclipse.org/ganymede/ Ganymede] <nowiki>http://download.eclipse.org/releases/ganymede/</nowiki> discovery site
<nowiki>http://download.eclipse.org/releases/europa/ </nowiki> discovery site
 
; 2008 : Eclipse 3.4 / [http://www.eclipse.org/ganymede/ Ganymede]
 
<nowiki>http://download.eclipse.org/releases/ganymede/</nowiki> discovery site
 
 
 
note too that the discovery site URIs should be added to the eclipse software under " help -> software updates -> add site " for software discovery.  The endpoints for these URIs are not formatted for human reading.
 
 
}}
 
}}
  
Line 143: Line 68:
 
java-gcj 1042 /usr/lib/jvm/java-gcj
 
java-gcj 1042 /usr/lib/jvm/java-gcj
 
</pre>
 
</pre>
Then you can set the Sun Microsystems Java as the default with
+
Then you can set the Sun Microsystems Java as the default with  
 
<source lang="bash">
 
<source lang="bash">
 
sudo update-java-alternatives --set java-6-sun
 
sudo update-java-alternatives --set java-6-sun
 
</source>
 
</source>
 
+
== Videos ==
To upgrade, you should be able to just
 
# start eclipse
 
# click Help (Alt + h)
 
# click Software Updates (s)
 
# click Update (Alt + d)
 
 
 
=== Trouble Upgrading ===
 
<pre>
 
The software items you selected may not be valid with your current installation.
 
Do you want to open the wizard anyway to review the selections?
 
</pre>
 
 
 
If I uncheck everything but the SDK from the update list, then that error message goes away.  However the update would stall and hang at 22% complete - presumably because the HTTP client within eclipse has problems.  So, I installed an experimental feature which supposedly takes care of this.  I eventually got the SDK to update, but I'm still unable to update the '''WST Server Core''' or other WST components.
 
<pre>
 
Cannot complete the request.  See the details.
 
Cannot find a solution satisfying the following requirements Match[requiredCapability:
 
org.eclipse.equinox.p2.iu/org.apache.commons.logging/[1.0.4.200809231229,1.0.4.200809231229]].
 
</pre>
 
I get the same error message with the WSDL 1.4 and 1.5 Feature
 
 
 
 
 
== Videos and Tutorials ==
 
Some resources to get you started using Eclipse effectively
 
 
* http://live.eclipse.org/
 
* http://live.eclipse.org/
 
* [http://live.eclipse.org/node/578 PHP Tutorial: Using Eclipse+PDT as a PHP IDE]
 
* [http://live.eclipse.org/node/578 PHP Tutorial: Using Eclipse+PDT as a PHP IDE]
* http://wiki.eclipse.org/PDT/TUTORIALS
 
 
* http://2tbsp.com/content/getting_started_eclipse_php_development_tools_(pdt) seems pretty good, but I haven't gotten through it yet because I'm first trying to update the platform.
 
* [http://blog.xam.dk/archives/81-Making-Eclipse-look-good-on-Linux.html Making eclipse look good]
 
 
[[Category:Applications]]
 
[[Category:Howto]]
 
[[Category:Best Practices]]
 
[[Category:Development]]
 
[[Category:Subversion]]
 

Revision as of 15:09, 15 October 2008

Intro[edit | edit source]

Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the application development lifecycle. A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform.

As the project, community and resources are numerous, this page serves to note specific information that will help you use and interact with the technology most efficiently with a focus on the PHP developer.

Installation[edit | edit source]

Getting and installing Eclipse used to be a lot more difficult than it is today. In late 2008, it is still not as simple as sudo apt-get install eclipse. You can do that, but the installed version will be 3.2, which dates from 2006 and will fail to meet requirements for recent modules like PDT. What's worse, the system can NOT upgrade itself. See https://help.ubuntu.com/community/EclipseIDE for more accurate help in installing Eclipse. The short instructions are to install a Java Virtual Machine (which you can use synaptic or apt-get for) and to download Eclipse and install it manually.

In spite of any relative ease compared to the way it was "back in the day" (when just installing Java took about a decade and three lawyers), it's a large project, with Java as a dependency and many applications that you can install on top of the framework. So, an exact description of how to get setup is important. In addition to the foregoing details, http://groups.drupal.org/node/6261 describes how to get yourself setup with a completely free development environment. It starts with Ubuntu (the Debian-based desktop distribution) and ends with configuring Eclipse for working with Drupal coding standards. (Now nicknamed appropriately 'Drubuntu'.)

The http://wiki.eclipse.org/PDT/Installation site offers good details on getting a clean and fully updated installation working.

Components[edit | edit source]

As a Language IDE eclipse offers tools for just about every programming language (click on "Related EPIC Plugins" in the bottom panel). It has also expanded beyond what you might consider when you think "Integrated Development Environment" to include not just advanced tools like UML modeling, but even support for Service Oriented Architectures.

Web Tools Platform[edit | edit source]

Subclipse[edit | edit source]

Subclipse is an Eclipse Team Provider plug-in providing support for Subversion within the Eclipse IDE. this Eclipse HOWTO covers subclipse installation and a couple other initial configuration items. I believe with the release of Ganymede (2008) that subversion integration is included, so I'd have to learn what the differences are between the subclipse project, and any subversion integration which is pre-packaged with the eclipse platform.

PHPEclipse[edit | edit source]

PHPEclipse is not the same as the PDT. They are two separate PHP-oriented IDEs that install into the Eclipse framework. You should try each, and decide which one works best for you. http://www.phpeclipse.de/wiki/General/HowDoesPHPEclipseCompareWithOtherPHPEditors

PHP Developer Tools (PDT)[edit | edit source]

The PDT project is the reference environment for PHP Developers.

Installing the PDT is very simple, and the steps are listed at https://help.ubuntu.com/community/EclipsePDT The wiki for the project is at http://wiki.eclipse.org/index.php/PDT

Unfortunately, the current packaged eclipse (3.2.2) for Kubuntu fails some of the requirements for the PDT, so if you are just installing eclipse for the first time, you'll see an error like the following when trying to install PDT:

See http://wiki.eclipse.org/IRC_FAQ#How_do_I_install_a_project_with_multiple_dependencies.3F Again, you'll probably want to REMOVE the 3.2 version and install a more recent version by hand because you can't upgrade one major release to the next.

Zend Studio for Eclipse[edit | edit source]

Zend Studio and other IDEs are similar to the PDT, but are not free.

Extras[edit | edit source]

Due to it's extensible nature, any given project from Drupal to Symfony can create plugins for Eclipse that make developing for that particular Content Management System or Web Application Framework more enjoyable (automatic syntax helpers for the defined methods of the system) plus other features. For example, the Symfony framework includes many command-line tools and it's configuration is written in YAML. The Symfoclipse plugin makes these tools available from the IDE and provides YAML authoring and validation.

Upgrading[edit | edit source]

It seems that Eclipse will not allow you to upgrade the system itself from Eclipse 3.2 to Eclipse 3.3 to Eclipse 3.4 to get Eclipse to work with the recent releases of PDT or PHPEclipse. Instead, you have to install the base Eclipse you want, and get the specific bundles that will work with that base.

In addition to installing Eclipse, you should definitely be sure to set the Java environement

sudo update-java-alternatives --list

That command should list something like

java-6-sun 63 /usr/lib/jvm/java-6-sun
java-gcj 1042 /usr/lib/jvm/java-gcj

Then you can set the Sun Microsystems Java as the default with

sudo update-java-alternatives --set java-6-sun

Videos[edit | edit source]