Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: Main entry point class not found #535

Open
sergey-morenets opened this issue Nov 1, 2023 · 1 comment
Open

Error: Main entry point class not found #535

sergey-morenets opened this issue Nov 1, 2023 · 1 comment
Labels
bug Something isn't working

Comments

@sergey-morenets
Copy link

Describe the bug

Hi

We couldn't build GraalVM native image for sample Spring Boot application (we used 3.2.0 RC1 or SNAPSHOT versions) and always received an error "Error: Main entry point class 'com.example.demo.DemoApplication' neither found" although this class is entry point and exists in the project.

To Reproduce

Here's plugin configuration:

            <plugin>
                <groupId>org.graalvm.buildtools</groupId>
                <artifactId>native-maven-plugin</artifactId>
                <version>0.9.28</version>
                <executions>
                    <execution>
                        <id>build-native</id>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <phase>package</phase>
                    </execution>
                    <execution>
                        <id>test-native</id>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <phase>test</phase>
                    </execution>
                </executions>
            </plugin>

And here's instructions in Dockerfile:

COPY pom.xml /opt/
WORKDIR /opt
RUN --mount=type=cache,target=/root/.m2 mvn dependency:resolve

COPY . /opt/
RUN --mount=type=cache,target=/root/.m2 mvn install spring-boot:repackage

Logs

 [1/8] Initializing...                                                                                    (0.0s @ 0.12GB)
#17 6.117 Error: Main entry point class 'com.example.demo.DemoApplication' neither found on
#17 6.117 classpath: '/opt/target/demo-0.0.1-SNAPSHOT.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.2.0-SNAPSHOT/spring-boot-starter-web-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter/3.2.0-SNAPSHOT/spring-boot-starter-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/springframework/boot/spring-boot/3.2.0-SNAPSHOT/spring-boot-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.2.0-SNAPSHOT/spring-boot-autoconfigure-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.2.0-SNAPSHOT/spring-boot-starter-logging-3.2.0-SNAPSHOT.jar:/root/.m2/repository/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar:/root/.m2/repository/ch/qos/logback/logback-core/1.4.11/logback-core-1.4.11.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.21.1/log4j-to-slf4j-2.21.1.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-api/2.21.1/log4j-api-2.21.1.jar:/root/.m2/repository/org/slf4j/jul-to-slf4j/2.0.9/jul-to-slf4j-2.0.9.jar:/root/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/root/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.2.0-SNAPSHOT/spring-boot-starter-json-3.2.0-SNAPSHOT.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.15.3/jackson-databind-2.15.3.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.3/jackson-annotations-2.15.3.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.3/jackson-core-2.15.3.jar:/root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.15.3/jackson-datatype-jdk8-2.15.3.jar:/root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.3/jackson-datatype-jsr310-2.15.3.jar:/root/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.15.3/jackson-module-parameter-names-2.15.3.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.2.0-SNAPSHOT/spring-boot-starter-tomcat-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.15/tomcat-embed-core-10.1.15.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.15/tomcat-embed-websocket-10.1.15.jar:/root/.m2/repository/org/springframework/spring-web/6.1.0-RC2/spring-web-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/spring-beans/6.1.0-RC2/spring-beans-6.1.0-RC2.jar:/root/.m2/repository/io/micrometer/micrometer-observation/1.12.0-RC1/micrometer-observation-1.12.0-RC1.jar:/root/.m2/repository/io/micrometer/micrometer-commons/1.12.0-RC1/micrometer-commons-1.12.0-RC1.jar:/root/.m2/repository/org/springframework/spring-webmvc/6.1.0-RC2/spring-webmvc-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/spring-aop/6.1.0-RC2/spring-aop-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/spring-context/6.1.0-RC2/spring-context-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/spring-expression/6.1.0-RC2/spring-expression-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-data-mongodb/3.2.0-SNAPSHOT/spring-boot-starter-data-mongodb-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/mongodb/mongodb-driver-sync/4.11.0/mongodb-driver-sync-4.11.0.jar:/root/.m2/repository/org/mongodb/bson/4.11.0/bson-4.11.0.jar:/root/.m2/repository/org/mongodb/mongodb-driver-core/4.11.0/mongodb-driver-core-4.11.0.jar:/root/.m2/repository/org/mongodb/bson-record-codec/4.11.0/bson-record-codec-4.11.0.jar:/root/.m2/repository/org/springframework/data/spring-data-mongodb/4.2.0-RC1/spring-data-mongodb-4.2.0-RC1.jar:/root/.m2/repository/org/springframework/spring-tx/6.1.0-RC2/spring-tx-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/data/spring-data-commons/3.2.0-RC1/spring-data-commons-3.2.0-RC1.jar:/root/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-validation/3.2.0-SNAPSHOT/spring-boot-starter-validation-3.2.0-SNAPSHOT.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.15/tomcat-embed-el-10.1.15.jar:/root/.m2/repository/org/hibernate/validator/hibernate-validator/8.0.1.Final/hibernate-validator-8.0.1.Final.jar:/root/.m2/repository/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar:/root/.m2/repository/org/jboss/logging/jboss-logging/3.5.3.Final/jboss-logging-3.5.3.Final.jar:/root/.m2/repository/com/fasterxml/classmate/1.6.0/classmate-1.6.0.jar:/root/.m2/repository/org/projectlombok/lombok/1.18.30/lombok-1.18.30.jar:/root/.m2/repository/org/springframework/spring-core/6.1.0-RC2/spring-core-6.1.0-RC2.jar:/root/.m2/repository/org/springframework/spring-jcl/6.1.0-RC2/spring-jcl-6.1.0-RC2.jar' nor
#17 6.117 modulepath: '/usr/lib64/graalvm/graalvm-community-java21/lib/svm/library-support.jar'.

System Info (please complete the following information):

  • OS: Windows 10
  • GraalVM Version: ghcr.io/graalvm/native-image-community:21
  • Java Version: 21
  • Plugin version: 0.9.28
@sergey-morenets sergey-morenets added the bug Something isn't working label Nov 1, 2023
@wilkinsona
Copy link

wilkinsona commented Nov 14, 2023

Assuming that /opt/target/demo-0.0.1-SNAPSHOT.jar is a Spring Boot uber jar, the native image compiler will not be able to find the classes that it contains as they're located in BOOT-INF/classes, not the root of the jar.

Have you considered using or taking inspiration from the native profile that's provided by spring-boot-starter-parent?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants