redhat-developer / redhat-developer/vscode-server-connector

Support of Maven Multi Module Project

Open
#567 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
59
Forks
29
Avg merge
19m
Merged PRs (30d)
1

Description

I have the same problem as asked in #562, but this issue was closed without further information. My multi module maven project has the following structure:

Project

  • database
    ejb packaged project for communicating with the database holding hibernate classes ...
  • common
    ejb packaged project with common code like StringUtil, DateUtil ...
  • admin
    war project (JSF / PrimeFaces admin-interface)
  • frontend
    war project (JSF frontend for public users)
  • api
    war project offering REST-APIs for external apps
  • ear
    maven ear project bundling admin, frontend and api to a single ear file. All war projects are using the common / database project.

When I open the project in Eclipse I can deploy the ear project and everything is deployed in a folder called e.g. "project.ear":
deployed-eclipse

I tried to use this plugin for VS Code but I am not sure how I should deploy the ear correctly. After some testing I have this setup:

deployables": {
    "c:\\Temp\\Project\\ear\\target\\ear-1.0.0-SNAPSHOT": {
      "label": "c:\\Temp\\Project\\ear\\target\\ear-1.0.0-SNAPSHOT",
      "path": "c:\\Temp\\Project\\ear\\target\\ear-1.0.0-SNAPSHOT",
      "options": {
        "option": {
          "deployment.output.name": "project.ear"
        }
      }
    }
  }

The server starts and everything is working again, but I have a main problem compared to Eclipse: Whenever I change a file (e.g. index.html in admin.war) nothing is redeployed. The deployment is done as compiled files:
deployed-vscode

When I manually call "Publish Server (Incremental)" the files are undeployed and redeployed. This takes very long time and is not necessary for debugging.

So far I could not find any documentation showing how a project like this should be deployed. For Eclipse it is very easy and no documentation is needed as it is straight forward. But here I am having trouble to understand what needs to be done.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the deployables configuration and the Publish Server (Incremental) command described in the issue, then reproduce the Maven multi-module layout with the nested admin.war and ear projects. Compare file changes with the current full undeploy/redeploy behavior; done means changes in a module such as admin.war are reflected without a full redeployment.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, vscode
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.