Looking for information about developer tools to use with WebSphere Liberty? Start here…

As developers we hold the tools we use near and dear to our hearts. The debugger is one of my most essential tools, and my use of Eclipse goes back to VisualAge (yikes) for its debugger! We believe that the Liberty ecosystem of tools that you use to create and build your applications is as important as the server itself.

This article discusses some of the tools you can use with Liberty. We would love to hear what other tools you are using that are crucial to your development experience.

WebSphere Developer Tools
Maven
Gradle
Ant

WebSphere Developer Tools

The WebSphere Developer Tools (WDT) are lightweight tools, running in Eclipse, for developing, assembling, and deploying applications to WebSphere Application Server Liberty and traditional servers. You can download Eclipse and WDT for free. WDT can help you develop many applications types:

  • Enterprise applications
  • Web applications
  • Apache Maven projects
  • Web service applications
  • OSGi applications

The power of WDT shines during development with:

  • Control over the Liberty server with support for start, stop, debug, view logs, and more
  • Incremental application publishing with minimal restarts so that you can write and test your changes locally without having to go through a build/publish cycle or restart the server
  • Debug support so that you can easily step through your applications
  • Content-assist for server configuration. Server configuration is minimal, but the tools help you find what you need and identify finger-checks, etc

See the WDT Knowledge Center and the many articles available on using WDT.

Maven

The Liberty Maven plugin (ci.maven) provides goals for managing a Liberty runtime within a Maven project. Our most common use cases focus on Maven projects using the war and liberty-assembly packaging types. In version 2.0 of the Liberty Maven plugin, we focused on simplifying POMs, improving WDT integration, and improving the overall experience.

We also made significant updates to the latest versions of WDT and the Liberty Maven plugin to improve your WDT experience when working with Liberty servers managed by Maven WAR projects. Be sure to grab WDT 17.0.0.2 and use version 2.0 of the `liberty-maven-plugin`. When your Maven web application project installs a Liberty server, the Eclipse tools can automatically recognize and add the server and runtime to the workbench for easier server interactions.

WAR projects

For Maven WAR projects, you can do things like build your Liberty server within the target of the project, install Liberty features, install your application as a WAR file or as a loose application (more on that later), and create a server archive ready for deployment. Using the `war` packaging type, your WAR file is deployed to the local Maven repository and is available to other projects as a dependency.

 Liberty assembly projects

You can do similar things when using the `liberty-assembly` packaging type. You typically install the Liberty server, install additional features if needed, install application EAR or WAR files from other dependent projects, and create a server package that is installed to your local Maven repository. You can also include  application code in a liberty-assembly project if you want. In the 2.0 release of the plug-in, we have bound more goals to the default lifecycle for liberty-assembly projects.

 More on v2.0

One of the most significant improvements to the Liberty Maven 2.0 plug-in is support for loose applications. While developing your application, you can install it as a loose application so that you don’t have to constantly repackage the WAR file. Instead, you simply re-compile your code or update files, and your running application is updated!  When you are using WDT and your files are automatically compiled, you just change the Java source and your application is updated. From the command line, a simple mvn compile gets the job done. Check out the looseApplication parameter for the install-apps goal.

In addition to loose application support we have also added:

  • The ability to copy a configuration directory rather than one file which is useful if you are using included configuration files.
  • New test-start-server and test-stop-server goals that honor common skip test mechanisms.
  • The ability to easily update your Liberty license to a production license.
  • New debug-server goal
  • New liberty-archetype-webapp archetype to create a new sample web project.
  • New liberty-maven-app-parent parent POM that binds commonly used liberty-maven-plugin goals to the default lifecycle.
  • The liberty-assembly automatically binds more goals to simplify your POM.

See Liberty Maven plug-in release 2.0 differences for more information on the release.

Also, many of the samples in https://github.com/WASdev/ already use the version 2.0 `liberty-maven-plugin`. Some examples use our new parent POM.  Others include the needed bindings directly in the project POM.

The Liberty Maven Plug-in 2.0 release is available on the Maven central repository.

Gradle

The ci.gradle project provides a Liberty Gradle plugin with tasks for managing  Liberty servers and applications. If Gradle is your build tool of choice, you can use this plugin manage your environment with tasks like:

  • Install the Liberty runtime
  • Install and uninstall Liberty features to the runtime
  • Create Liberty servers
  • Start, stop, run, package, dump, debug, check status for Liberty servers
  • Deploy and undeploy applications to a running server
  • Clean the server to remove logs, apps, and workarea files
  • Package the Liberty server as an archive file

Ant

The ci.ant project provides a collection of Ant tasks for managing WebSphere Application Server Liberty servers and applications. If you are writing Ant scripts, use this resource to manage Liberty. You can:

  • Install a Liberty runtime
  • Install and uninstall Liberty features to the runtime
  • Issue Liberty server commands such as create, start, run, stop, package and more.
  • Deploy and undeploy applications to a running server.
  • Clean the server to remove logs, apps, and workarea files.
  • Compile JSP files

Most of these ant tasks provide access to their equivalent Liberty command line functions. The Maven plug-in uses these tasks and adds more smarts derived from the Maven project structure and liberty-maven-plugin goals. The Gradle plug-in provides a wrapper to these Ant tasks.

Check out our downloads, videos, and additional information, and let us know how we can help.

Ask a question on Stack Overflow  or on one of our Git repositories.

2 comments on"Developer tools"

  1. Thanks for the information !

Join The Discussion

Your email address will not be published. Required fields are marked *