diff options
author | Robert Helgesson <robert@rycee.net> | 2015-08-07 18:31:12 +0200 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-08-10 23:12:04 +0200 |
commit | c71d44c724be7ca87c5e426bab350b7261678430 (patch) | |
tree | e8f383f4310009e75f879700f5eac439a1feabbc /doc | |
parent | 24a5d478837f6e845ca9128f23cc672b78a3eaf3 (diff) |
nixpkgs doc: add package notes for Eclipse
Diffstat (limited to 'doc')
-rw-r--r-- | doc/package-notes.xml | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/doc/package-notes.xml b/doc/package-notes.xml index ecaf619472def..266a809221603 100644 --- a/doc/package-notes.xml +++ b/doc/package-notes.xml @@ -219,5 +219,131 @@ you should modify </section> --> +<!--============================================================--> + +<section xml:id="sec-eclipse"> + + <title>Eclipse</title> + + <para> + The Nix expressions related to the Eclipse platform and IDE are in + <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse"><filename>pkgs/applications/editors/eclipse</filename></link>. + </para> + + <para> + Nixpkgs provides a number of packages that will install Eclipse in + its various forms, these range from the bare-bones Eclipse + Platform to the more fully featured Eclipse SDK or Scala-IDE + packages and multiple version are often available. It is possible + to list available Eclipse packages by issuing the command: + +<screen> +$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description +</screen> + + Once an Eclipse variant is installed it can be run using the + <command>eclipse</command> command, as expected. From within + Eclipse it is then possible to install plugins in the usual manner + by either manually specifying an Eclipse update site or by + installing the Marketplace Client plugin and using it to discover + and install other plugins. This installation method provides an + Eclipse installation that closely resemble a manually installed + Eclipse. + </para> + + <para> + If you prefer to install plugins in a more declarative manner then + Nixpkgs also offer a number of Eclipse plugins that can be + installed in an <emphasis>Eclipse environment</emphasis>. This + type of environment is created using the function + <varname>eclipseWithPlugins</varname> found inside the + <varname>nixpkgs.eclipses</varname> attribute set. This function + takes as argument <literal>{ eclipse, plugins ? [], jvmArgs ? [] + }</literal> where <varname>eclipse</varname> is a one of the + Eclipse packages described above, <varname>plugins</varname> is a + list of plugin derivations, and <varname>jvmArgs</varname> is a + list of arguments given to the JVM running the Eclipse. For + example, say you wish to install the latest Eclipse Platform with + the popular Eclipse Color Theme plugin and also allow Eclipse to + use more RAM. You could then add + +<screen> +packageOverrides = pkgs: { + myEclipse = with pkgs.eclipses; eclipseWithPlugins { + eclipse = eclipse-platform; + jvmArgs = [ "-Xmx2048m" ]; + plugins = [ plugins.color-theme ]; + }; +} +</screen> + + to your Nixpkgs configuration + (<filename>~/.nixpkgs/config.nix</filename>) and install it by + running <command>nix-env -f '<nixpkgs>' -iA + myEclipse</command> and afterward run Eclipse as usual. It is + possible to find out which plugins are available for installation + using <varname>eclipseWithPlugins</varname> by running + +<screen> +$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description +</screen> + </para> + + <para> + If there is a need to install plugins that are not available in + Nixpkgs then it may be possible to define these plugins outside + Nixpkgs using the <varname>buildEclipseUpdateSite</varname> and + <varname>buildEclipsePlugin</varname> functions found in the + <varname>nixpkgs.eclipses.plugins</varname> attribute set. Use the + <varname>buildEclipseUpdateSite</varname> function to install a + plugin distributed as an Eclipse update site. This function takes + <literal>{ name, src }</literal> as argument where + <literal>src</literal> indicates the Eclipse update site archive. + All Eclipse features and plugins within the downloaded update site + will be installed. When an update site archive is not available + then the <varname>buildEclipsePlugin</varname> function can be + used to install a plugin that consists of a pair of feature and + plugin JARs. This function takes an argument <literal>{ name, + srcFeature, srcPlugin }</literal> where + <literal>srcFeature</literal> and <literal>srcPlugin</literal> are + the feature and plugin JARs, respectively. + </para> + + <para> + Expanding the previous example with two plugins using the above + functions we have +<screen> +packageOverrides = pkgs: { + myEclipse = with pkgs.eclipses; eclipseWithPlugins { + eclipse = eclipse-platform; + jvmArgs = [ "-Xmx2048m" ]; + plugins = [ + plugins.color-theme + (plugins.buildEclipsePlugin { + name = "myplugin1-1.0"; + srcFeature = fetchurl { + url = "http://…/features/myplugin1.jar"; + sha256 = "123…"; + }; + srcPlugin = fetchurl { + url = "http://…/plugins/myplugin1.jar"; + sha256 = "123…"; + }; + }); + (plugins.buildEclipseUpdateSite { + name = "myplugin2-1.0"; + src = fetchurl { + stripRoot = false; + url = "http://…/myplugin2.zip"; + sha256 = "123…"; + }; + }); + ]; + }; +} +</screen> + </para> + +</section> </chapter> |