5. Integrated Development Environment

5.1. devonfw-ide

Welcome to the devonfw-ide!

The devonfw-ide is a fantastic tool to automatically download, install, setup and update the IDE (integrated development environment) of your software development projects.

For further details visit the following links:

5.1.1. ATTENTION

Note
The official public release of devonfw-ide is still pending due to some final clarification. The download links are not broken, but pointing to the place where the release will appear after the clarification is complete. If you want to use devonfw-ide today you can clone it from ide.git and run mvn install to build it, or contact us (check internal community annoucements).

TL;DR?

  1. download

  2. extract to C:\projects\my-project-name or /projects/my-project-name

  3. run setup script

  4. run eclipse-main to launch Eclipse or vscode-main for Visual Studio code

  5. happy hacking!

5.1.2. License

The devonfw-ide is free and open-source. For details read our TERMS_OF_USE.

5.2. Features

Every developer needs great tools to work efficient. Setting all this up manually can be tedious and error-prone. Further, different projects may require different versions and configurations of such tools. Especially configurations like code-formatters should be consistent within a project to avoid diff-wars.

The devonfw-ide will solve all these problems. Here are the features we can offer for you with devonfw-ide:

  • Efficient
    Setup your IDE within minutes tailored for the requirements of your project.

  • Automated
    Automate the setup and update, avoid manual steps and mistakes.

  • Simple
    KISS (Keep It Small and Simple), no installers or tool-integrations that break with every release. Instead use archive-files (zip or tar.gz), templates and simple shell scripts.

  • Configurable
    You can tweak the configuration to your needs. Further the settings contain configuration templates for the different tools (see configurator).

  • Maintainable
    For your project you should copy these settings to an own git repository that can be maintained and updated to manage the tool configurations during the project lifecycle. If you use github or gitlab every developer can easily suggest changes and improvements to these settings via pull/merge requests without ending in chaos with big teams.

  • Customizable
    You need an additional tool that we never heard of? Put it in the software folder of the structure. The devon CLI will then automatically add it to your PATH variable.
    Further you can create your own commandlet for your additional tool. For closed-source tools you can create your own archive and distribute to your team members as long as you care about the terms and licenses of these tools.

  • Multi-platform
    Works on all major platforms, which are Windows, Mac, and Linux.

  • Multi-tenancy
    Have as many instances of the devonfw-ide "installed" on your machine for different projects with different tools, tool versions and configurations. No physical installation and no tweaking of your operating system. "Installations" of devonfw-ide do not interfere with each other nor with other installed software.

  • Multiple Workspaces
    Support working with different workspaces on different branches. Create and update new workspaces with few clicks. See the workspace name in the title-bar of your IDE so you do not get confused and work on the right branch.

  • Free
    The devonfw-ide is free just like everything from devonfw. See TERMS_OF_USE for details.

5.2.1. IDEs

We support the following IDEs:

5.2.2. Platforms

We support the following platforms:

5.2.3. Build-Systems

We support the following build-systems:

However, also other IDEs, platforms, or tools can be easily integrated as commandlet.

5.2.4. Motivation

TL;DR? Lets talk to developers in the proper language. Here are examples with devonfw-ide:

[/]$ devon
You are not inside a devon IDE installation: /
[/]$ cd /projects/devon
[devon]$ mvn
zsh: command not found: mvn
[devon]$ devon
devonfw-ide has environment variables have been set for /projects/devon
[devon]$ mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: /projects/devon/software/maven
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /projects/devon/software/java
Default locale: en_DE, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.3", arch: "x86_64", family: "mac"
[devon]$ cd /projects/ide-test/workspaces/test/my-project
[my-project]$ devon
devonfw-ide has environment variables have been set for /projects/ide-test
[my-project]$ mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: /projects/ide-test/software/maven
Java version: 11.0.2, vendor: Oracle Corporation, runtime: /projects/ide-test/software/jdk/Contents/Home
Default locale: en_DE, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.3", arch: "x86_64", family: "mac"
[ide-test]$ devon eclipse
launching Eclipse for workspace test...
[my-project]$ devon build
[INFO] Scanning for projects...
...
[INFO] BUILD SUCCESS

This was just a very simple demo of what devonfw-ide can do. For further details have a look at our CLI documentation.

Now you might ask:

  • But I use Windows/Linux/MacOS/…​? - works on all platforms!

  • But how about Windows CMD or Power-Shell? - works!

  • But what if I use cygwin or git-bash on windows? - works!

  • But I love to use ConEmu or Commander? - works with full integration!

  • How about MacOS Terminal or iTerm2? - works with full integration!

  • But I use zsh? - works!

  • …​? - works!

Wow! So lets get started with download & setup.

5.3. Setup

5.3.1. Prerequisites

We try to make it as simple as possible for you. However, there are some minimal prerequisites:

  • You need to have a tool to extract *.tar.gz files (tar and gzip). On Windows use 7zip. On all other platforms this comes out of the box.

  • You need to have git and curl installed.

    • On Windows all you need is download and install git for windows. This also ships with bash and curl.

    • On Linux you might need to install the above tools in case they are not present (e.g. sudo apt-get install git curl or yum install git-core curl)

    • On MacOS all you need is download and install git for mac.

5.3.2. ATTENTION

Note
The official public release of devonfw-ide is still pending due to some final clarification. The download links are not broken, but pointing to the place where the release will appear after the clarification is complete. If you want to use devonfw-ide today you can clone it from ide.git and run mvn install to build it, or contact us (check internal community annoucements).

5.3.3. Download

Releases of devonfw-ide are published to maven central. You can download them from here.

5.3.4. Install

Create a central folder like C:\projects or /projects. Inside this folder create a sub-folder for your new project such as my-project and extract the contents of the downloaded archive (devonfw-ide-scripts-*.tar.gz) into this new folder. Run the command setup in this folder (on windows just double click setup.bat). That’s all. To get started read the usage.

5.3.5. Uninstall

To "uninstall" your devonfw-ide you only need to call the following command:

devon ide uninstall

Then you can delete the devonfw-ide top-level folder(s) (${DEVON_IDE_HOME}).

The devonfw-ide is designed to be not invasive to your operating system and computer. Therefore it is not "installed" into your system in a classical way. Instead you just create a folder and extract the downloaded archive to it. Only specific prerequisites like git have to be installed regularly by you in advance. All other software resists just locally inside the folder of your devonfw-ide. However, there are the following excuses (what is reverted by devon ide uninstall):

  • The devon command is copied to your home directory (~/.devon/devon)

  • The devon alias is added to your shell config (~/.bashrc and ~/.zshrc, search for alias devon="source ~/.devon/devon").

  • On Windows the devon.bat command is copied to your home directory (%USERPROFILE%\scripts\devon.bat)

  • On Windows this %USERPROFILE%\scripts directory is added to the PATH of your user.

  • The devonfw-ide will download third party software to your ~/Downloads folder to reduce redundant storage.

5.4. Usage

This section explains you how to use the devonfw-ide. We assume you have successfully installed it first.

5.4.1. Developer

As a developer you are supported to setup your IDE within minutes. You only need the settings URL from your Architect.

Update

To update your IDE (if instructed by your Architect), all you need to do is run the following command:

devon ide update
Working with multiple workspaces

If you are working on different branches in parallel you typically want to use multiple workspaces.

  1. Go to the workspaces folder in your ${DEVON_IDE_HOME} and create a new folder with the name of your choice (e.g. release2.1).

  2. Check out (git clone …​) the according projects and branch into that workspace folder.

  3. Open a shell in that new workspace folder (cd to it) and according to your IDE run e.g. eclipse, vscode, or intellij to create your workspace and launch the IDE. You can also add the parameter create-script to the IDE commandlet in order to create a launch-script for your IDE.

You can have multiple instances of eclipse running for each workspace in parallel. To distinguish these instances you will find the workspace name in the title of eclipse.

5.4.2. Architect

As architect or technical lead of the project you can configure the devonfw-ide to your needs.

Project specific settings

For your project you should create a git-repository for the settings. You can customize many aspects this way.

Distribute

To redistribute the IDE you can decide to use the official vanilla releases of the devonfw-ide scripts. However, you may also add the cloned settings, a custom devon.properties file, or predefine software (be aware of multi-platform-support).

Update

When you have done changes in a larger project (big team), please first test the changes yourself, then pick a pilot user of the team, and only after that works well for a couple of days inform the entire team to update.

5.5. License

This software is licensed as Open-Source product for free usage including commercial use. You need to apply to our terms of use before using it.

5.6. Structure

The directory layout of your devonfw-ide will look like this:

Listing 1. File structure of your devonfw-ide
/ projects (or C:\Projects, etc.)
└──/ my-project ($DEVON_IDE_HOME)
    ├──/ conf
    ├──/ log
    ├──/ scripts
    ├──/ settings
    ├──/ software
    ├──/ system
    ├──/ updates
    ├──/ workspaces
    ├── setup
    ├── setup.bat
    └── TERMS_OF_USE.adoc

The elements of the above structure are described in the individual sections. As they are hyperlinks you can simply click them to get more details.

5.6.1. TERMS_OF_USE

You need to agree with the TERMS_OF_USE in order to use devonfw-ide. Everything included out of the box applies to open-source licenses. However, due to the many third party components with their licenses and terms we want to make this clear to all our users and be compliant.

5.7. Devon CLI

The devonfw-ide is shipped with a central command devon. The setup will automatically register this command so it is available in any shell on your system. This page describes the Command Line Interface (CLI) of this command.

5.7.1. Devon

Without any arguments the devon command will determine your DEVON_IDE_HOME and setup your environment variables automatically. In case you are not inside of a devonfw-ide folder the command will echo a message and do nothing.

[/]$ devon
You are not inside a devon IDE installation: /
[/]$ cd /projects/my-project/workspaces/test/my-git-repo
[my-git-repo]$ devon
devonfw-ide has environment variables have been set for /projects/my-project in workspace main
[my-git-repo]$ echo $DEVON_IDE_HOME
/projects/devon
[my-git-repo]$ echo $JAVA_HOME
/projects/my-project/software/java

5.7.2. Commandlets

The devon command supports a pluggable set of commandlets. Such commandlet is provided as first argument to the devon command and my take additional arguments:

devon «commandlet» [«arg»]*

Technically a commandlet is a bash script located in $DEVON_IDE_HOME/scripts/command. So if you want to integrate another tool with devonfw-ide we are awaiting your pull-request.

The following commandlets are currently available:

5.8. Variables

The devonfw-ide defines a set of standard variables to your environment for configuration via variables[.bat] files. These environment variables are described by the following table. Those variables printed bold are also exported in your shell (except for windows CMD that does not have such concept). Variables with the value - are not set by default but may be set via configuration to override defaults. Please note that we are trying to minimize any potential side-effect from devonfw-ide to the outside world by reducing the number of variables and only exporting those that are required.

Table 1. Variables of devonfw-ide
Variable Value Meaning

DEVON_IDE_HOME

e.g. /projects/my-project

The top level directory of your devonfw-ide structure.

PATH

$PATH:$DEVON_IDE_HOME/software/java:…​

You system path is adjusted by devon command.

DEVON_HOME_DIR

~

The platform independent home directory of the current user. In some edge-cases (e.g. in cygwin) this differs from ~ to ensure a central home directory for the user on a single machine in any context or environment.

DEVON_IDE_TOOLS

java mvn eclipse vscode node npm ng

List of tools that should be installed and upgraded by default for your current IDE.

DEVON_OLD_PATH

…​

A "backup" of PATH before it was extended by devon to allow recovering it. Internal variable that should never be set or tweaked.

WORKSPACE

main

The workspace you are currently in. Defaults to main if you are not inside a workspace. Never touch this variable in any varibales file.

WORKSPACE_PATH

$DEVON_IDE_HOME/workspaces/$WORKSPACE

Absolute path to current workspace. Never touch this variable in any varibales file.

JAVA_HOME

$DEVON_IDE_HOME/software/java

Path to JDK

SETTINGS_PATH

$DEVON_IDE_HOME/settings

Path to your settings. To keep oasp4j-ide legacy behaviour set this to $DEVON_IDE_HOME/workspaces/main/development/settings.

M2_REPO

$DEVON_IDE_HOME/conf/.m2/repository

Path to your local maven repository. For projects without high security demands, you may change this to the maven default ~/.m2/repository and share your repository amongst multiple projects.

MAVEN_HOME

$DEVON_IDE_HOME/software/maven

Path to Maven

MAVEN_OPTS

-Xmx512m -Duser.home=$DEVON_IDE_HOME/conf

Maven options

DEVON_SOFTWARE_REPOSITORY

-

Project specific or custom software-repository.

DEVON_SOFTWARE_PATH

-

Globally shared user-specific local software installation location.

ECLIPSE_VMARGS

-Xms128M -Xmx768M -XX:MaxPermSize=256M

JVM options for Eclipse

ECLIPSE_PLUGINS

-

Array with "feature groups" and "update site URLs" to customize required eclipse plugins.

«TOOL»_VERSION

-

The version of the tool «TOOL» to install and use (e.g. ECLIPSE_VERSION or MAVEN_VERSION).

«TOOL»_BUILD_OPTS

e.g.clean install

The arguments provided to the build-tool «TOOL» in order to run a build.

«TOOL»_RELEASE_OPTS

e.g.clean deploy -Dchangelist= -Pdeploy

The arguments provided to the build-tool «TOOL» in order to perform a release build.

5.9. Configuration

The devonfw-ide aims to be highly configurable and flexible. The configuration of the devon command and environment variables takes place via devon.properties files. The following list shows these configuration files in the order they are loaded so files can override variables from files above in the list:

  1. build in defaults (for JAVA_VERSION, ECLIPSE_PLUGINS, etc.)

  2. ~/devon.properties - user specific global defaults (on windows in %USERPROFILE%/devon.properties)

  3. scripts/devon.properties - defaults provided by devonfw-ide. Never directly modify this file!

  4. devon.properties - vendor variables for custom distributions of devonfw-ide-scripts, may e.g. tweak SETTINGS_PATH or predefine SETTINGS_URL.

  5. settings/devon.properties (${SETTINGS_PATH}/devon.properties) - project specific configurations from settings.

  6. workspaces/${WORKSPACE}/devon.properties - optional workspace specific configurations (especially helpful in projects using docker).

  7. conf/devon.properties - user specific configurations (e.g. M2_REPO=~/.m2/repository). During setup this file is created by copying a template from ${SETTINGS_PATH}/devon/conf/devon.properties.

5.9.1. devon.properties

The devon.properties files allow to define environment variables in a simple and OS independent way:

  • # comments begin with a hash sign (#) and are ignored

  • variable_name=variable_value with space etc.

  • variable_name=${predefined_variable}/folder_name

    variable values can refer to other variables that are already defined what will be resolved to their value. You have to used ${…​} syntax to make it work on all platforms (never use %…​%, $…​, or $(…​) syntax in devon.properties files).

  • export exported_variable=this value will be exported in bash, in windows CMD the export prefix is ignored

  • variable_name=

    this will unset the specified variable

  • variable_name=~/some/path/and.file

    tilde is resolved to your personal home directory on any OS including windows.

  • array_variable=(value1 value2 value3)

    This will only work properly in bash worlds but as no arrays are used in CMD world of devonfw-ide it does not hurt on windows.

  • Please never surround values with quotes (var="value")

  • This format is similar to Java *.properties but does not support advanced features as unicode literals, multi-lined values, etc.

In order to know what to configure have a look at the available variables.

Please only tweak configurations that you need to change and take according responsibility. Flexibility comes with some price. Of course you can break everything if you do the wrong things.

Further, you can configure maven via conf/settings.xml. To configure your IDE such as eclipse or vscode you can tweak the settings.

5.10. scripts

This directory is the heart of the devonfw-ide and contains the required scripts.

Listing 2. File structure of the conf folder
/scripts
├──/ command
│  ├── build
│  ├── eclipse
│  ├── gradle
│  ├── help
│  ├── ide
│  ├── intellij
│  ├── java
│  ├── jenkins
│  ├── mvn
│  ├── ng
│  ├── node
│  ├── npm
│  ├── release
│  ├── sonar
│  ├── vscode
│  └── yarn
├── devon
├── devon.bat
├── environment-project
├── environment-project.bat
├── functions
└── devon.properties

The command folder contains the commandlets. The devon script is the key command line interface for devonfw-ide. For windows there is also devon.bat to be used in CMD or PowerShell. As the devon CLI can be used as global command on your computer from any directory and gets installed centrally it aims to be stable, minimal, and lightweight. The key logic to setup the environment variables is therefore in a separate script environment-project and its Windows variant environment-project.bat inside this scripts folder. The file functions contains a collection of reusable bash functions. These are sourced and used by the commandlets. Finally the devon.properties file contains defaults for the general configuration of devonfw-ide.

5.11. settings

The devonfw-ide requires settings with configuration templates for the arbitrary tools.

To get an initial set of these settings we provide the devonfw-ide-settings as an initial package. These are also released so you can download the latest stable version at maven central.

To test devonfw-ide or for small projects you can also use these the latest default settings. However, for collaborative projects we strongly encourage you to distribute and maintain the settings via a dedicated and project specific git repository (or any other version-control-system). This gives you the freedom to control and manage the tools with their versions and configurations during the project lifecycle. Therefore a technical lead creates a settings git repository for the project. He creates a "fork" devonfw-ide-settings by adding it as "upstream" origin and pulls from there finally pushing it to the project settings git. This also allows to later merge changes from the official devonfw-ide-settings back into the project specific settings "fork".

5.11.1. Structure

The settings folder (see SETTINGS_PATH) has to following file structure:

Listing 3. File structure of settings
/settings
├──/ devon
│  ├──/ conf
│  │  ├──/ .m2
│  │  │  └── settings.xml
│  │  ├──/ npm
│  │  │  └── .npmrc
│  │  └── devon.properties
├──/ eclipse
│  ├──/ workspace
│  │  ├──/ setup
│  │  └──/ update
│  ├── lifecycle-mapping-metadata.xml
│  └── project.dictionary
├──/ ...
├──/ sonarqube
│  └──/ profiles
│     ├── Devon-C#.xml
│     ├── ...
│     └── Devon-XML.xml
├──/ vscode
│  └──/ workspace
│     ├──/ setup
│     └──/ update
└── devon.properties

As you can see the settings folder contains sub-folders for tools of the IDE. So the devon folder contains devon.properties files for the configuration of your environment. Further, for the IDEs such as eclipse or vscode the according folders contain the templates to manage the workspace via our configurator.

5.11.2. Configuration Philosophy

Different tools and configuration files require a different handling:

  • Where suitable we directly use these configurations from your settings (e.g. for eclipse/lifecycle-mapping-metadata.xml, or eclipse/project.dictionary).

  • The devon folder in settings contains templates for configuration files. There are copied to the devonfw-ide installation during setup (if no such file already exists). This way the settings repository can provide reasonable defaults but allows the user to take over control and customize to his personal needs (e.g. .m2/settings.xml).

  • Other configurations need to be imported manually. To avoid manual steps and simplify usage we try to automate as much as possible. This currently applies to sonarqube profiles but will be automated with sonar-devon4j-plugin in the future.

  • For tools with complex configuration structures like eclipse, intellij, or vscode we provide a smart mechanism via our configurator.

5.11.3. Customize Settings

You can easily customize these settings for the requirements of your project. We suggest that one team member is responsible to ensure that everything stays consistent and works.

You may also create new sub-folders in settings and put individual things according to your needs. E.g. you could add scripts for greasemonkey or tampermonkey, as well as scripts for your database or whatever may be useful and worth to share in your team. However, to share and maintain knowledge we recommend to use a wiki.

5.12. 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 a devonfw-ide together with the required software. However, to be platform independent and allow lightweight updates the devonfw-ide is capable to download and install the software automatically for you.

5.12.1. 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 DEVON_SOFTWARE_REPOSITORY variable. Then devonfw-ide 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:

${DEVON_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).

5.12.2. Shared

By default each installation of devonfw-ide 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 devonfw-ide installations and to prevent side-effects, it can cause a huge waste of disc resources in case you are having many installations of devonfw-ide. If you are a power-user of devonfw-ide 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 devonfw-ide installations.

Caution
If you use this power-feature you are taking responsibility for side-effects and should not expect support. Also if you are using Windows please read Symlinks in Windows and make your mind if you really want to do so. You might also use this hint and maintain it manually without enabling the following feature.

In order to do so, you only need to configure the variable DEVON_SOFTWARE_PATH in your ~/devon.properties pointing to an existing directory on your disc (e.g. /projects/software or C:\projects\software). Then devonfw-ide will install required software into ${DEVON_SOFTWARE_PATH}/${software_name}/${software_version} as needed and create a symbolic link to it in ${DEVON_IDE_HOME}/software/${software_name}.

As a benefit another devonfw-ide 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 devonfw-ide 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 DEVON_SOFTWARE_PATH variable to the empty value in your ${DEVON_IDE_HOME}/conf/devon.properties of that sensitive installation:

DEVON_SOFTWARE_PATH=

This will disable this feature particularly for that specific sensitive devonfw-ide installation but let you use it for all other ones.

5.13. Integration

The devonfw-ide already brings a lot of integration out of the box. This page is for users that want to get even more out of it. For instance this IDE ships with a console script to open a shell with the environment variables properly set for your devonfw-ide installation, so you get the correct version of your tools (Java, Maven, Yarn, etc.). However, you might want to open a shell from your IDE or your file manager. For some of these use-cases you need additional tweaks that are described on this page.

5.13.1. Windows

devonfw-ide automatically integrates with Windows-Explorer during setup.

CMD

If you want to open a CMD (MS Dos Shell) directly from Windows-Explorer simply right-click on the folder in your devonfw-ide you want to open. From the context menu click on Open Devon CMD shell here. This will open CMD and automatically initialize your environment according to the devonfw-ide project containing the folder (if any, see above).

Git-Bash

Just like for CMD you can also click Git Bash Here from Windows-Explorer context-menu to open a git bash. If you have selected a folder in your devonfw-ide installation, it will automatically initialize your environment.

Cygwin

In case you have cygwin installed on your machine, the devonfw-ide will autodetect this during setup and also install a Windows-Explorer integration. Just choose Open Devon Cygwin Bash Here to open cygwin bash and initialize your devonfw-ide environment.

ConEMU

ConEmu is a great extension that brings additional features such as tabs to your windows shells. If you like it, you will also want to have it integrated with devonfw-ide. All you need to do is follow these simple steps:

  • Copy the file CmdInit.cmd from your ConEmu installation (C:\Program Files\ConEmu\ConEmu\CmdInit.cmd) to a personal folder (e.g. C:\Users\MYLOGIN\scripts).

  • Modify this copy of CmdInit.cmd by adding the line IDEenv (e.g. at line 6) and saving.

  • Go to ConEmu and open the settings (via context menu or [Windows][Alt][p]).

  • Select Startup > Tasks from the left tree.

  • Select the first option form Predefined tasks (command groups) ({Shells::cmd})

  • In the text area at the right bottom modify the location of CmdInit.cmd to your customized copy (%HOME%\scripts\CmdInit.cmd).

  • Select Integration from the left tree.

  • Click on the upper Register button (for ConEmu Here).

  • Click on Save settings

Now you have the option ConEmu here if you right click on a folder in Windows Explorer that will open a new tab in ConEmu and automatically setup your environment according to the devonfw-ide project containing the folder (if any, see above).

ConEMU and StartExplorer

You can even integrate the Eclipse StartExplorer plug-in and ConEMU to open up console right from the file tree of eclipse into ConEMU. You can do this by adding a custom command to StartExplorer:

  1. Open up eclipse

  2. Open Window > Preferences

  3. Select StartExplorer > Custom Commands on the left

  4. Add on the right and setup the following command: "C:\Program Files\ConEmu\ConEmu64.exe" -Dir ${resource_path} -runlist cmd.exe /k ""%ConEmuBaseDir%\CmdInit.cmd" & "IDEenv"" -cur_console:n Be aware that you potentially have to adapt the ConEmu*.exe path to match your installation.

    You can even add a shell login if you installed git bash on your machine. Please be aware to potentially adapt the sh.exe url to match your installation: "C:\Program Files\ConEmu\ConEmu64.exe" -Dir ${resource_path} -runlist cmd.exe /k ""%ConEmuBaseDir%\CmdInit.cmd" & "IDEenv" & "%SYSTEMDRIVE%\Program Files\Git\bin\sh.exe" --login" -cur_console:n

  5. State two times the "Name for *" to your choice like "ConEMU"

  6. OK → OK

  7. Right click on any folder/file in your eclipse file explorer and select StartExplorer > Custom Commands > ConEMU.

  8. You will get a initialized console at the file/folder location! Have fun!

5.13.2. Eclipse

You might want to open a terminal directly as view inside your Eclipse IDE. Therefore we provide eclipse with the TM terminal plugin. Further the settings already configure that plugin so it automatically sets the environment properties correctly. In other words the integration comes out of the box.

To use it all you need to do is to follow these steps:

  • Open the Terminal view (Window > Show View > Other > Terminal > Terminal > OK).

  • Click on the monitor icon from the left of the icon bar of the Terminal view.

  • Choose terminal (e.g. Local Terminal) and confirm with OK

  • Execute mvn -v to verify your environment.

5.13.3. IntelliJ or WebStorm

You might want to open a terminal directly as view inside your IDEA IDE, that already ships with a feature for this out of the box. If you start your IDE via the start-idea script provided by devonfw-ide then everything is configured and your environment is set automatically.

5.14. Tools

This page is a general guide and collection to boost your productivity by using proper tools.

5.14.1. Tabs everywhere

Many people got used to tabs that have been introduced by all major browsers:

tabs in firefox
Figure 1. Tabs in Firefox

This nice feature can be added to many other tools.

Tabs for Windows Explorer

If you want to have tabs for windows explorer simply install Clover

tabs in windows explorer
Figure 2. Tabs in Windows Explorer
Tabs for SSH

If you want to have tabs for your SSH client Putty (or even better Kitty that comes with WinSCP integration) you simply install SuperPutty

tabs for SSH sessions
Figure 3. Tabs for SSH
Tabs for CMD

If you want to have tabs for your windows command-line you simply install ConEmu

tabs for windows shells
Figure 4. Tabs for CMD

See guide-integration for integration of ConEmu with devonfw-ide.

5.14.2. Browser Plugins

There are tons of helpful browser plugins out there and it might be a matter of personal taste what you like to have installed. However, as we are heavily using github we want to promote octotree.

5.14.3. Windows Helpers

Handle passwords

For security you want complex passwords that differ for each account? For simplicity you only want to remember a single password? Want to have both? Then you need to install KeePass right now.

Real text editor

A real developer needs a real text editor and not windows build in notepad. The most common choice is Notepad++.

Real compression tool

You need to deal with ZIP files, TGZ, dpkg, etc.? Just install 7zip and forget about windows build-in ZIP support (that is buggy with long file paths, etc.).

Smarter clipboard

You want to paste something from the clipboard but meanwhile you had to copy something else? Just one of many things you can easily do with ditto.

Sysinternals Tools

A real developer will quickly notice that windows build in tools to analyze processes, network connections, autostarts, etc. are quite poor. So what you really want is the Sysinternals-Suite. Make process-explorer your default task manager asap. Use autoruns to prevent nasty background things to be started automatically. Use tcpview to figure out which process is blocking port 8080, etc.

Cope with file locks

Did you ever fail to delete a file or directory that was locked by some process and you did not even know which one it was? Then you might love IoBit Unlocker. See also this article.

You are used to symbolic and hard links in Linux? You have to work with Windows? You would also like to have such links in Windows? Why not? Windows supports real links (not these stupid shortcuts). If you even want to have it integrated in windows explorer you might want to install linkshellextension. However, you might want to disable SmartMove in the configuration if you face strange performance issues when moving folders.

Linux

Install Cygwin and get your bash in windows with ssh-agent, awk, sed, tar, and all the tools you love (or hate).

X11

Want to connect via SSH and need to open an X11 app from the server? Want to see the GUI on your windows desktop? No problem: Install VcXsrv.

Keyboard Freak

Are you the keyboard shortcut guy? Want to have shortcuts for things like « and » ? Then you should try AutoHotKey. For the example (« and ») you can simply use this script to get started:

^<::Send {U+00AB}
^+<::Send {U+00BB}

Now just press [ctrl][<] and [ctrl][>] ([ctrl][shift][<]). Next create shortcuts to launch your IDE, to open your favorite tool, etc.

Paint anywhere on your desktop

Do you collaborate sharing your screen, and want to mark a spot on top of what you see? Use Epic Pen to do just that.

analyze graphs

Need to visualise complex graph structures? Convert them to Trivial Graph Format (.tgf) an run yEd to get an interactive visualization of your graph.

up your screen capture game

Capture any part of your screen with a single click, directly upload to dropbox, or run an svn commit (oops sorry git ;-) ) all in one go with Greenshot.

Fast Search in Windows

Everything is a desktop search utility for Windows that can rapidly find files and folders by name.

5.15. OASP4J IDE Plugins:

Since an application’s code can greatly vary, and every program can be written in lots of ways without being semantically different, OASP4J IDE comes with pre-installed and pre-configured plugins that use some kind of a probabilistic approach, usually based on pattern matching, to determine which pieces of code should be reviewed. These hints are a real time-saver, helping you to review incoming changes and prevent bugs from propagating into the released artifacts. It provides, CheckStyle, SonarQube,FindBugs. Details of each can be found in subsequent sections.

5.15.1. CheckStyle

What is CheckStyle?

CheckStyle is a Open Source development tool to help you ensure that your Java code adheres to a set of coding standards. Checkstyle does this by inspecting your Java source code and pointing out items that deviate from a defined set of coding rules.

With the Checkstyle IDE Plugin your code is constantly inspected for coding standard deviations. Within the Eclipse workbench you are immediately notified of problems via the Eclipse Problems View and source code annotations similar to compiler errors or warnings. This ensures an extremely short feedback loop right at the developers fingertips.

Why use it?

If your development team consists of more than one person, then obviously a common ground for coding standards (formatting rules, line lengths etc.) must be agreed upon - even if it is just for practical reasons to avoid superficial, format related merge conflicts. Checkstyle Plugin helps you define and easily apply those common rules.

The plugin uses a project builder to check your project files with Checkstyle. Assuming the IDE Auto-Build feature is enabled each modification of a project file will immediately get checked by Checkstyle on file save - giving you immediate feedback about the changes you made. To use a simple analogy, the Checkstyle Plug-in works very much like a compiler but instead of producing .class files it produces warnings where your code violates the Checkstyle rules. The discovered deviations are accessible in the Eclipse Problems View, as code editor annotations and via additional Checkstyle violations views.

Installation

After IDE installation, IDE provides default checkstyle configuration file which has certain check rules specified . The set of rules used to check your code is highly configurable. A Checkstyle configuration specifies which check rules are validated against your code and with which severity violations will be reported. Once defined a Checkstyle configuration can be used across multiple projects. The IDE comes with several pre-defined Checkstyle configurations. You can create custom configurations using the plugin’s Checkstyle configuration editor or even use an existing Checkstyle configuration file from an external location.

You can see violations in your workspace as shown in below figure.

checkstyle
Figure 5. Depicts-Checkstyle-Violations

 

Usage

So, once projects are created, follow steps mentioned below, to activate checkstyle:

  1. Open the properties of the project you want to get checked.

checkstyle2
Figure 6. Click-on-properties

 

  1. Select the Checkstyle section within the properties dialog .

checkstyle3
Figure 7. select-checkstyle

 

  1. Activate Checkstyle for your project by selecting the Checkstyle active for this project check box and press OK

checkstyle4
Figure 8. Activate-checkstyle

 

Now Checkstyle should begin checking your code. This may take a while depending on how many source files your project contains. The Checkstyle Plug-in uses background jobs to do its work - so while Checkstyle audits your source files you should be able to continue your work. After Checkstyle has finished checking your code please look into your Eclipse Problems View. There should be some warnings from Checkstyle. This warnings point to the code locations where your code violates the preconfigured Checks configuration.

checkstyle5
Figure 9. view-checkstyle

 

You can navigate to the problems in your code by double-clicking the problem in you problems view. On the left hand side of the editor an icon is shown for each line that contains a Checkstyle violation. Hovering with your mouse above this icon will show you the problem message. Also note the editor annotations - they are there to make it even easier to see where the problems are.

5.15.2. FindBugs:

What is FindBugs?

FindBugsis an open source project for a static analysis of the Java bytecode to identify potential software bugs. Findbugs provides early feedback about potential errors in the code.

Why use it?

It scans your code for bugs, breaking down the list of bugs in your code into a ranked list on a 20-point scale. The lower the number, the more hardcore the bug.This helps the developer to access these problems early in the development phase.

Installation and Usage.

OASP4J IDE comes preinstalled with FindBugs plugin.

You can configure that FindBugs should run automatically for a selected project. For this right-click on a project and select Properties from the popup menu. via the project properties. Select FindBugs → Run automatically as shown below.

configure FindBugs

To run the error analysis of FindBugs on a project, right-click on it and select the Find Bugs…​ → Find Bugs menu entry.

error analysis

Plugin provides specialized views to see the reported error messages. Select Window → Show View → Other…​ to access the views. The FindBugs error messages are also displayed in the Problems view or as decorators in the Package Explorer view.

ShowView bug Explorer
bug Explorer

5.15.3. SonarQube

what is SonarQube?

SonarQube is an open platform to manage code quality. SonarQube is a web-based application. Rules, alerts, thresholds, exclusions, settings can be configured online. By leveraging its database, SonarQube not only allows to combine metrics altogether but also to mix them with historical measures.

Why use it?

It covers seven aspects of code quality like junits, coding rules,comments,complexity,duplications, architecture and design and potential bugs. SonarQube has got a very efficient way of navigating, a balance between high-level view, dashboard and defect hunting tools. This enables to quickly uncover projects and / or components that are in analysis to establish action plans.

Installation and usage:

OASP4J IDE comes preinstalled with SonarQube. To configure it , please follow below steps:

First of all, you need to start sonar service.For that , from softwares folder in extracted from OASP4j IDE zip, choose sonarqube→bin→<choose appropriate folder according to your OS>-→and execute startSonar bat file.

If your project is not already under analysis, you’ll need to declare it through the SonarQube web interface as described here. Once your project exists in SonarQube, you’re ready to get started with SonarQube in Eclipse.

Go to Window > Preferences > SonarQube > Servers.

sonarqube1
Figure 10. Configure_in_IDE

 

SonarQube in Eclipse is pre-configured to access a local SonarQube server listening on http://localhost:9000/. You can edit this server, delete it or add new ones.By default, user and password is "admin".If sonar service is started properly, test connection will give you successful result.

Linking a project to one analysed on sonar server.

associate-sonarqube
Figure 11. associate-sonarqube

 

In the SonarQube project text field, start typing the name of the project and select it in the list box:

 

Click on Finish. Your project is now associated to one analyzed on your SonarQube server.

Changing linkage

At any time, it is possible to change the project association.

To do so, right-click on the project in the Project Explorer, and then SonarQube > Change Project Association…​:

 

Unlinking a Project

To do so, right-click on the project in the Project Explorer, and then SonarQube > Remove SonarQube Nature.

 

Advanced Configuration

Additional settings (such as markers for new issues) are available through Window > Preferences > SonarQube

eclipse-settings
Figure 15. eclipse-settings

 

To analyse a project, right click on project , select SonarQube→Analyse.

analyse-project
Figure 16. Analyse-project

 

To look for sonarqube analysed issue, go to Window→Show View→ Others→SonarQube→SonarQube Issues. Now you can see issues in sonarqube issues tab as shown

sonarQube-issues-view
Figure 17. SonarQube-issues-view

 

Or you can go to link http://loclahost:9000 and login with admin as id and admin as password and goto Dashboard.you can see all the statistics of analysis of the configured projects on sonar server.

5.15.4. Soap UI

What is soap UI?

SoapUI is an open-source web service testing application for service-oriented architectures (SOA) and representational state transfers (REST). Its functionality covers web service inspection, invoking, development, simulation and mocking, functional testing, load and compliance testing. OASP4J IDE comes preinstalled with this plugin. Note: There is no update site for this tool.

Why use it?

SoapUI is a free and open source cross-platform Functional Testing solution. With an easy-to-use graphical interface, and enterprise-class features, SoapUI allows you to easily and rapidly create and execute automated functional, regression, compliance, and load tests. In a single test environment, SoapUI provides complete test coverage and supports all the standard protocols and technologies.For more details see here .

Installation and Usage:

As soon as , IDE is configured, soapUI can be seen in Windows→Preferences.

soap-preferences
Figure 18. soap-preferences

 

Soap ui Perspective can be opened as shown in below pictures

soap-perspective
Figure 19. soap-perspective

 

Creation of new Project

Once Soap UI perspective is opened, right click on projects and "select New Soap UI Project"

soap-new-project
Figure 20. soap-new-project

 

Once above option is selected, a new dialog is opened as shown below:

soap-create-new-project
Figure 21. soap-create-new-project

 

Provide initial wsdl and project name, and your soap project is created and ready for testing your webservice.

soap-req-response
Figure 22. soap-req-response

 

So, once project is created, and if "create Requests" option is selected , while creation of project, a new request with all the details mentioned in provided WSDL is created.

As , seen in above picture, when u click on "Request1 " node on project tree pane,on the left side request is generated automatically, and when u click on arrow button on tool bar,response is generated with the desired result.

For load testing, and functional testing, refer this link

Last updated 2019-11-13 14:38:09 UTC