Skip to content

Latest commit

 

History

History
98 lines (80 loc) · 3.63 KB

File metadata and controls

98 lines (80 loc) · 3.63 KB

Software

The software folder contains the third party tools for your IDE such as maven, npm, java, dotnet, etc. However, IDEasy only maintains symbolic links in the software folder inside $IDE_HOME pointing to a local Repository.

Repository

Technically we "install" (extract) all tools into a local repository (in $IDE_ROOT/_ide/software) and just place symbolic links to such physical tool version inside the local repository. This has the following benefits:

  • Switching a tool version forth and back is lightning fast since only a symbolic link needs to be updated.

  • We avoid severe issues with Windows file-locking.

  • Multiple IDEasy projects can share the same physical tool versions to save disc-space. However, we keep previous tool version on updates what can also waste disc-space. Therefore, you can run ide cleanup to find and release old tool versions and free disc-space.

Extra Tool Installations

Assuming you needs multiple versions of the same tool (SDK), you can make IDEasy install additional versions. There is always a main installation of a tool used by your project configured via «TOOL»_VERSION and «TOOL»_EDITION. This main installation will be located in $IDE_HOME/software/«tool» and is automatically added to your PATH. Extra tool installations will be installed in $IDE_HOME/software/extra/«tool»/«name». Extra tools can be configured via settings/ide-extra-tools.json. Here is an example of such a file:

{
  "dotnet": {
    "legacy": {
      "version": "6.0.428"
    }
  },
  "java": {
    "client": {
      "version": "11.0.27_6",
      "edition": "azul"
    },
    "process-engine": {
      "version": "21.*"
    }
  }
}

As a result you will get the following created below the folder $IDE_HOME/software/extra:

File structure of extra installations
/ $IDE_HOME/software/extra
├──/ dotnet/
|  └──/ legacy/ -> 6.0.428
└──/ java
   ├──/ client/ -> 11.0.27_6
   └──/ process-engine/ -> 21.0.9_10
Note
If you have multiple sub-projects that requite different SDKs it is easier and better to separate them into individual git repos and create an IDEasy settings repository for each of them. Then you can run build tools easily.

However, this feature can be helpful for monolithic projects that e.g. use a legacy rich client that does not run with the same SDK major version as the backend. You can then build everything with the main SDK version but create a launch config to run the legacy client with the older SDK version.

Custom Tools

In some cases, a project might need (proprietary) tools that are not directly supported by IDEasy. As a solution for this need, IDEasy let’s you configure custom tools via settings/ide-custom-tools.json. The following example illustrates how to configure custom tools:

{
  "url": "https://some-file-server.company.com/projects/my-project",
  "tools": [
    {
      "name": "jboss-eap",
      "version": "7.1.4.GA",
      "os-agnostic": true,
      "arch-agnostic": true
    },
    {
      "name": "firefox",
      "version": "70.0.1",
      "os-agnostic": false,
      "arch-agnostic": false
    }
  ]
}

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 and instead of x64 you could get arm64 (e.g. for Mac M1+ CPU).