我将一些现有的项目从ant更改为maven项目。 目前为止这么好。Maven:类型无法解析。它是从所需的.class文件间接引用的。
所有项目都具有相同的groupId。 Theres是一个名为“ServerBase”和artifactId“server-base”的项目。 在这个项目那里有一个抽象类“BaseService”,它通过定义了一个记录:
import org.jboss.logging.Logger;
[...]
protected Logger log = Logger.getLogger(this.getClass());
那里有另一个项目名称为“服务器”和artifactId的“服务器”。 在这个项目中,有一个类ConfigurationDAOImpl扩展了上面的BaseService-Class。 在ConfigurationDAOImpl中,记录器日志用于创建一些输出。
在“服务器”的我已经声明POM文件:
<dependency>
<groupId>com.tcom.amadeus</groupId>
<artifactId>server-base</artifactId>
<version>${project.version}</version>
</dependency>
在构建路径依赖性显示下MavenDependencies很不错。我之前从构建路径中删除了旧版本/自然版/蚂蚁依赖版。 如果我删除它,我获得关于旷课等 很多错误,但尽管我确实有这种依赖我正在Eclipse中的跟随着错误(标签下的标记):
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
我试图消除依赖并再次添加它,但没有任何运气。 这两个项目都参考JAVA 1.8。 这两个项目都是使用目标构建的,可以多次清理软件包。 这两个项目都已由Righclick更新或按F5。我正在使用Eclipse版本:Neon.1a版本(4.6.1) 我正在使用apache-maven-3.3.9 我正在使用m2e插件。
任何进一步的帮助将不胜感激。 在此先感谢。
争取在命令行:MVN清洁套装...... – khmarbaise
没有帮助,但是当我明确地添加服务器的pom文件内这种相关性: org.jboss.logging 的jboss-记录 错误消失。但我并不真的想这样做,因为这种依赖性仍然在基于服务器的'pom文件中定义,并且我添加了从服务器到服务器的依赖关系,因此我希望以传递方式从服务器基础获取所有依赖关系。我错了吗? –
Kaspatoo
好吧我想我得到它 我在服务器基地pom文件内说的依赖性已得到范围:提供,当它擦除(这将导致使用默认值)或将其更改为'编译'(我认为是默认),错误也消失。 我现在要研究范围编译是否可以查看部署(我可能不希望部署jar也是因为目标应用程序服务器仍然有自己的jar包)。 感谢所有。 – Kaspatoo