Skip to content

vkavitha/liberty-tools-vscode

 
 

Repository files navigation

Liberty Tools for Visual Studio Code

Note: Starting with the 0.1.12 early release, Java 17 is required to run Liberty Tools for Visual Studio Code.

Marketplace Version License

Liberty Tools for Visual Studio Code offers features for developing cloud-native Java applications with Open Liberty and WebSphere Liberty. Iterate fast with Liberty dev mode, code with assistance for MicroProfile & Jakarta EE APIs, and easily edit Liberty configuration files.

Note: This is an early release.

liberty dashboard screenshot

Use Liberty Tools to run your Liberty Maven or Liberty Gradle projects through the Liberty dashboard or the VS Code command palette. You can start, stop, or interact with Liberty dev mode on all available Liberty Maven or Liberty Gradle projects in your workspace. Liberty Tools also helps you quickly and easily edit your application and configuration files by providing language support features for MicroProfile, Jakarta EE, and Liberty configuration and Java files.

For minimum requirements information and detailed instructions on how to use Liberty tools, check out the Liberty Tools for Visual Studio Code user guide page.

Features

  • View supported Liberty projects in the Liberty dashboard.
  • Start/Stop dev mode.
  • Start dev mode with custom parameters.
  • Start dev mode in a container.
  • Attach the debugger.
  • Run tests.
  • View test reports.
  • Code with language assistance in the following configuration and application files:
    • server.xml, server.env, bootstrap.properties Liberty configuration files
    • Jakarta EE 9.x APIs in Java files
    • MicroProfile APIs in microprofile-config.properties and Java files

Feature completion in bootstrap.properties files helps you quickly edit your Liberty runtime configuration.

Liberty Config Language Server completion

Hover in server.xml files provides more detailed descriptions.

Liberty Config Language Server hover

Diagnostics in server.env files helps you quickly spot errors in your Liberty runtime configuration.

Liberty Config Language Server diagnostic

Helpful code snippets are provided in Java files for Jakarta EE APIs such as Jakarta RESTful Web Services.

Eclipse LSP4Jakarta completion

Editing assistance for configuration and application files is provided through the following language server projects, which this project consumes. For more information, see the documentation for these projects.

Liberty Tools for Visual Studio Code depends on the Tools for MicroProfile Visual Studio Code extension. This extension provides editing assistance for MicroProfile APIs in Java and microprofile-config.properties files.

Quick start

Projects with the Liberty Maven Plugin or Liberty Gradle Plugin configured will appear in the Liberty Dashboard on the sidebar.

For minimum requirements information and detailed instructions on how to use the Liberty commands, check out the Liberty Tools for Visual Studio Code user guide page.

Commands

The following commands are available when you select a project in the Liberty Dashboard.

Command Description
Start Start dev mode.
Start…​ Start dev mode with custom parameters. Supported parameters can be found in the documentation for the dev goal of the Liberty Maven Plugin and the libertyDev task of the Liberty Gradle Plugin.
Start in a container Start dev mode with Liberty running in a container. The liberty-maven-plugin must be version 3.3-M1 or higher. The liberty-gradle-plugin must be version 3.1-M1 or higher.
Stop Stop dev mode. Liberty must be running in dev mode to use this command.
Run tests Run the unit tests and integration tests that are configured for your project. Liberty must be running in dev mode to use this command.
View integration test report (Maven) View the integration test report file, if it exists at the /target/site/failsafe-report.html default location.
View unit test report (Maven) View the unit test report file, if it exists at the /target/site/surefire-report.html default location.
View test report (Gradle) Open the test report file, if it exists at the build/reports/tests/test/index.html default location. This action command is available only to Gradle projects. Gradle projects have only a single action command for test result reporting.

Configurable user settings

Setting Description Default Value
liberty.terminal.useJavaHome If this value is true, and if the setting java.home has a value, then the environment variable JAVA_HOME will be set to the value of java.home when a new terminal window is created. False
xml.java.home This property allows a user to define their LemMinX language server runtime without altering the JAVA_HOME environment variable. Not set

External settings

The following settings, which are provided by external extensions, are honoured when you run dev mode commands.

Setting Description Provided By
maven.executable.path Maven commands executed by dev mode will honour this setting. When this value is empty, it tries to use mvn or mvnw according to the value of maven.executable.preferMavenWrapper. Maven for Java extension
maven.executable.preferMavenWrapper Maven commands executed by dev mode will honour this setting. If true, it tries to use mvnw if a Maven wrapper file can be found. Otherwise it will use mvn. Maven for Java extension
java.import.gradle.wrapper.enabled Gradle commands executed by dev mode will honour this setting. If true, it tries to use gradlew if a Gradle wrapper file can be found. Otherwise it will use gradle. Language support for Java extension

Requirements

Note: Starting with the 0.1.12 early release, Java 17 is required to run Liberty Tools for Visual Studio Code.

The following extensions are bundled with Liberty Tools for Visual Studio Code during installation and are provided here for additional information.

Contributing

See the DEVELOPING and CONTRIBUTING documents for more details.

Issues

Please report bugs, issues and feature requests by creating a GitHub issue.

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 87.1%
  • Shell 8.3%
  • JavaScript 4.4%
  • Other 0.2%