Home > Mobile >  Classes and Dependencies imports issues in Maven project
Classes and Dependencies imports issues in Maven project

Time:10-26

I'm facing some errors in my Maven project. My project structure is shown in the following image. "project structure"

I define the class ProjectInfosDAO in the package main.resources.utils and the others are in main.java.io.r2devops.jobSelector. ProjectInfos class is called in JobSelector class. When I compile the project the following error is displayed:

cannot find symbol
  symbol: variable ProjectDAO
  location: class io.r2devops.jobSelector.JobSelector

Also the similar error occurs for the dependency Gson despite I mentionned it in pom.xml and imported it in ProjectInfosDAO.

cannot find symbol
  symbol: variable Gson
  location: class main.resources.utils.ProjectInfosDAO

In JobSelector class:

 import main.resources.ProjectInfosDAO;
 
 public class JobSelector{
    public static final void main(String[] args){
       ...
       HashMap<String, TechnoInfos> technoInfos = ProjectInfosDAO.getTechnologiesInfos("technologies_infos.json"); 
       ...
    }
 } 

In the pom.xml:

...
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-bom</artifactId>
        <type>pom</type>
        <version>${drools-version}</version>
        <scope>import</scope>
      </dependency>
      <!--  Gson: Java to JSON conversion -->
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.10</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
...

Thanks in advance for your kindly help.

CodePudding user response:

You can't put java classes in src/main/resources. Java classes go in src/main/java.

CodePudding user response:

Other than the problem mentioned by Roddy, the problem you have is with Maven. In Maven, <dependencyManagement> is not used to define the dependencies of your project, but to define the versions and scope of them. This is normally useful in a multi-module project. So, even if you have a <dependencyManagement> in your pom.xml, you still need to define the dependencies:

...
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-bom</artifactId>
        <type>pom</type>
        <version>${drools-version}</version>
        <scope>import</scope>
      </dependency>
      <!--  Gson: Java to JSON conversion -->
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.10</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
    </dependency>
  </dependencies>
...

Or, if you are not in a multi-module project, you can probably get rid of the whole <dependencyManagement> section:

<dependencies>
  <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10</version>
    <scope>compile</scope>
  </dependency>
</dependencies>
  • Related