当前位置: 首页 > 知识库问答 >
问题:

Maven:无法解析类型。它是从必需的。class文件间接引用的

罗鸿福
2023-03-14

我将一些现有项目从ant改为maven项目。到目前为止还好。

所有项目都有相同的groupid。下面是一个名为“serverbase”和artifactId“server-base”的项目。在这个项目中有一个抽象类“BaseService”,它通过以下方式定义记录器:

import org.jboss.logging.Logger;
[...]
protected Logger log = Logger.getLogger(this.getClass());
    <dependency>
        <groupId>com.tcom.amadeus</groupId>
        <artifactId>server-base</artifactId>
        <version>${project.version}</version>
    </dependency>
The type org.apache.commons.logging.Log cannot be resolved. It is indirectly referenced from required .class files

Resource: ConfigurationDAPImpl.java

Path: /Server/src/main/...

Location: Line 24

Type: Java Problem

任何进一步的帮助都将不胜感激。提前谢了。

共有1个答案

范鸿
2023-03-14

有两种方法可以解决这个问题:

1)在server-projects pom文件中显式添加所需的依赖项:

<dependency>
  <groupId>org.jboss.logging</groupId>
  <artifactId>jboss-logging</artifactId>
</dependency>

2)将server-base-projects pom文件中所需依赖项的scop从现在的“provide”改为“compile”,或者完全删除scope标记,以便maven使用默认范围(我猜是“compile”)

旧的:

<dependency>
  <groupId>org.jboss.logging</groupId>
  <artifactId>jboss-logging</artifactId>
  <scope>provided</scope>
</dependency>

新:

<dependency>
  <groupId>org.jboss.logging</groupId>
  <artifactId>jboss-logging</artifactId>
  <scope></scope>
</dependency>
<dependency>
  <groupId>org.jboss.logging</groupId>
  <artifactId>jboss-logging</artifactId>
</dependency>

谢谢大家。

 类似资料: