redhat-developer / redhat-developer/vscode-java

"missing required Java project" error when opening android maven projects

Open
#3,092 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

android
Dominant language
TypeScript
Stars
2.3k
Forks
546
Avg merge
20h 1m
Merged PRs (30d)
11

Description

Orginally reported by @Fr0stM0urne on https://github.com/microsoft/vscode-java-debug/issues/1329:

Trying to debug a java project (FlowDroid) using vscode. The project is built using maven. Getting this error when using "Run Debug" on the main function of a java file in the project: Project 'soot-infoflow-summaries' is missing required Java project: 'soot'

Tried cleaning java workspace and restarting java server but it did not fix the issue. These are the error logs of vscode java server:

!ENTRY org.eclipse.jdt.ls.core 4 0 2023-04-17 17:43:48.374
!MESSAGE Error occured while building workspace. Details: 
 message: The project cannot be built until build path errors are resolved; code: 0; resource: ~/FlowDroid/soot-infoflow;
 message: Project 'soot-infoflow' is missing required Java project: 'soot'; code: 964; resource: ~/FlowDroid/soot-infoflow;
 message: The project was not built since it depends on soot-infoflow, which has build path errors; code: 0; resource: ~/FlowDroid/soot-infoflow-android;
 message: The project cannot be built until its prerequisite soot-infoflow-android is built. Cleaning and building all projects is recommended; code: 0; resource: ~/FlowDroid/soot-infoflow-cmd;
 message: The project was not built since it depends on soot-infoflow, which has build path errors; code: 0; resource: ~/FlowDroid/soot-infoflow-integration;
 message: Project 'soot-infoflow-summaries' is missing required Java project: 'soot'; code: 964; resource: ~/FlowDroid/soot-infoflow-summaries;
 message: The project cannot be built until build path errors are resolved; code: 0; resource: ~/FlowDroid/soot-infoflow-summaries;
Steps To Reproduce
  1. Install sdkman using curl -s "https://get.sdkman.io" | bash
  2. Install maven using sdk install maven 3.8.7
  3. Clone FlowDroid using git clone https://github.com/secure-software-engineering/FlowDroid.git
  4. Set ANDROID_JARS environment variable. (See FlowDroid git repo for details)
  5. Install FlowDroid using mvn -DskipTests install. (See Flowdroid git repo for details)
  6. Open FlowDroid in VS code and go to soot-infoflow-cmd/src/soot/jimple/infoflow/cmd/MainClass.java.
    Run/Debug the main function
Environment
  • Operating System: Ubuntu 22.04.2 LTS x86_64
  • JDK version: 1.8
  • Visual Studio Code version: 1.77.3
  • Java extension version: v0.25.10
  • Java Debugger extension version: v0.49.1
Additional Information:

The missing project soot is located in ~/.m2/repository/org/soot-oss

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 reported FlowDroid reproduction and the Java project import/build-path errors from the vscode-java language server logs. Reproduce by opening soot-infoflow-cmd/src/soot/jimple/infoflow/cmd/MainClass.java and running or debugging its main function after the Maven build. Done means the missing required Java project error is addressed and the main function can be run or debugged.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, vscode
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.