Skip to content

ERROR: Could not detect a suitable build command for the source checkout #142

Description

@neupaneprakash
  1. `codeql database create java_db1 --language=java --source-root Java/
  2. Initializing database at /home/prakash/java_db1.
  3. Running build command: [/home/prakash/codeql/java/tools/autobuild.sh]
  4. [2022-11-11 11:29:36] [build-stderr] ERROR: Could not detect a suitable build command for the source checkout.
  5. [2022-11-11 11:29:36] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/home/prakash/codeql/tools/linux64/preload_tracer, /home/prakash/codeql/java/tools/autobuild.sh])
  6. A fatal error occurred: Exit status 1 from command: [/home/prakash/codeql/java/tools/autobuild.sh] `

Above log is generated while executing database create command. I was simply trying to create codeql database for java with single java file named TestClass.java inside the Java directory but I am not being able to create database successfully.
For your reference I am attaching the java source code here : https://www.dropbox.com/sh/q1t648a3imvmesk/AAAxoRWnihrO2oYiBrDQICWQa?dl=0
Anyone can help ASAP?

Activity

  1. aibaars commented on Nov 11, 2022

    @aibaars
    Contributor

    CodeQL analysis for Java needs to compile the Java source code in order to analyze it. The "autobuilder" is a small program that tries to automatically figure out how to build the code base. It supports common build systems like gradle, maven and ant, and also picks up simple build scripts named build.sh or build.cmd (for windows).

    CodeQL does not know how to compile a single Java file. Simply calling javac SoureFile.java is unlikely to work very often in practice, because you'd normally need to add dependencies to the classpath using the -cp flag.

    In your case I'd recommend adding a simple build.sh file to your repo :

    #! /bin/bash
    
    javac TestClass.java

    Alternatively you can invoke codeql with an explicit build command like codeql database create java_db1 --language=java --source-root Java/ --command "javac TestClass.java"

  2. neupaneprakash commented on Nov 12, 2022

    @neupaneprakash
    Author
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions