Skip to content

Latest commit

 

History

History
86 lines (63 loc) · 5.91 KB

software.asciidoc

File metadata and controls

86 lines (63 loc) · 5.91 KB
Table of Contents

software

The software folder contains the third party tools for your IDE such as maven, npm, java, etc. With respect to the licensing terms you may create a custom archive containing IDEasy together with the required software. However, to be platform independent and allow lightweight updates, IDEasy is capable to download and install the software automatically for you.

Repository

By default, software is downloaded via the internet from public download URLs of the according tools. However, some projects may need specific tools or tool versions that are not publicly available. In such case, they can create their own software repository (e.g. in a VPN) and configure the base URL of it via SOFTWARE_REPOSITORY variable. Then, IDEasy will download all software from this repository only instead of the default public download URLs. This repository (URL) should be accessible within your network via HTTPS (or HTTP) and without any authentication. The repository needs to have the following structure:

${SOFTWARE_REPOSITORY}/«tool»/«version»/«tool»-«version»[-«os»].tgz

So for every tool «tool» (java, maven, vscode, eclipse, etc.) you need to provide a folder in your repository. Within this folder for every supported version «version» you need a subfolder. This subfolder needs to contain the tool in that version for every operating system «os» (windows, linux, or mac - omitted if platform independent, e.g. for maven).

Shared

By default, each installation of IDEasy has its own physical installations of the required tools in the desired versions stored in its local software folder. While this is great for isolation of IDEasy installations and to prevent side-effects, it can cause a huge waste of disc resources in case you are having many installations of IDEasy. If you are a power-user of IDEasy with more then ten or even up to hundreds of installations on your machine, you might love to share installations of a software tool in a particular version between multiple IDEasy installations. In order to do so, you only need to configure the variable SOFTWARE_PATH in your ~/ide.properties pointing to an existing absolute directory on your disc (e.g. /projects/software or C:\projects\software).

Caution
SOFTWARE_PATH must be an absolute path that is an existing directory. On windows it has to be on the same drive as your IDE installations. If you use this power-feature you are taking responsibility for side-effects and should not expect support. You might also use this hint and maintain it manually without enabling the following feature.

Then IDEasy will install required software into ${SOFTWARE_PATH}/${software_name}/${software_version} as needed and create a symbolic link to it in ${IDE_HOME}/software/${software_name}.

As a benefit, another IDEasy installation will using the same software with the same version can re-use the existing installation and only needs to create the symbolic link. No more waste of having many identical JDK installations on your disc.

As a drawback, you need to be aware that specific tools may be "manipulated" after installation. The most common case is that a tool allows to install plugins or extensions such as all IDEs do. Such "manipulations" will cause side-effects between the different IDEasy installations sharing the same version of that tool. While this can also be a benefit it may also cause trouble. If you have a sensitive project that should not be affected by such side-effects, you may again override the SOFTWARE_PATH variable to the empty value in your ${IDE_HOME}/conf/ide.properties of that sensitive installation:

SOFTWARE_PATH=

This will disable this feature particularly for that specific sensitive IDEasy installation but let you use it for other ones.

Custom

In some cases, a project might need a (proprietary) tool(s) that (are) not supported by IDEasy. A very simple solution is to get a release of IDEasy and add the tool(s) to the software folder and then distribute this modified release to your team. However, this has several drawbacks as you then have a fork of IDEasy all will loose your tool(s) when updating to a new release.

As a solution for this need, IDEasy let’s you configure custom tools via the IDE_CUSTOM_TOOLS variable. It can be defined in ide.properties of your settings git repository as an array of the custom tools you need to add. Each entry applies:

  • It needs to have the form «tool»:«version»[:all]:[«repository-url»]

  • The first entry must have the «repository-url» included which is used as default

  • Further entries will inherit this default if omitted

  • This URL is used in the same way as described above for a software repository.

  • The SOFTWARE_REPOSITORY variable is ignored by this feature.

  • The optional infix :all is used to indicate that the tool is platform independent. Otherwise, an OS specific infix is appended to the URL file to download for your platform (windows, linux, or mac).

As an example, we define it in ${IDE_HOME}/settings/ide.properties:

IDE_CUSTOM_TOOLS=(jboss-eap:7.1.4.GA:all:https://host.tld/projects/my-project firefox:70.0.1:)

This will download and extract the following content to your software folder:

Please note that if you are not using windows, the -windows suffix will be -mac or -linux.