Kotlin编译器返回:未解决的引用:Spring 5.0中的springframework
我试着开始使用Kotlin和Spring 5.0一起玩,但是我遇到了Kotlin编译器没有认识到任何对Spring的引用的问题:
[错误]无法执行目标org.jetbrains.kotlin:kotlin-maven-plugin:1.1.1:编译(编译)项目kotlin-mvc-project:编译失败:编译失败:
[错误](文件位置):[7,12]未解决的参考:springframework
我正在使用Spring的里程碑版本Spring 5.0.0.M5和Kotlin版本1.1.1(在我的kotlin编译器和IntelliJ Kotlin插件上)。 在我的任何Kotlin文件中,IDE没有强调编译错误,但运行kotlin编译器似乎根本没有看到Spring 5.0。
有没有人有任何想法如何解决这个问题? 我在这个项目中使用Maven,我已经附上了我的POM作为参考:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>kotlin-mvc-project</groupId> <artifactId>kotlin-mvc-project</artifactId> <version>1.0-SNAPSHOT</version> <properties> <kotlin.version>1.1.1</kotlin.version> <spring.version>5.0.0.M5</spring.version> </properties> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/libs-milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-compiler</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory> <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory> <plugins> <plugin> <artifactId>kotlin-maven-plugin</artifactId> <groupId>org.jetbrains.kotlin</groupId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile</id> <goals> <goal>test-compile</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
在@DmitrySenkovich的帮助下缩小了它对我的pom不是问题,我调查了我的本地maven仓库中可能出现的问题。 我检查了我的.m2文件夹中的罐子,他们似乎有点不妥,错过了某些东西。 我试图擦拭Maven回购,但他们一直在拉回来。
这个问题是在公司机器上,经过一番调查,似乎我们的maven settings.xml被配置为从公司广泛Artifactory,而不是maven中央/任何其他回购下拉依赖。
根据需要,依赖关系应该从其他仓库下拉到这个Arifactory,但是无论出于何种原因(我假设,因为它们是从一个中央仓库以外的仓库中被拉下来的),里程碑式的Spring仓库的罐子没有被正确地拉下来。 通过删除这些并手动添加罐子Artifactory我能够最终解决这个问题。