我在pom.xml中有以下依赖项:
<properties>
<javax.servlet.version>3.1.0</javax.servlet.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${javax.servlet.version}</version>
</dependency>
</dependencies>
当我在项目中运行nvm clean install
时,在~/.m2/repository/javax/servlet/servlet-api/3.1.0/
maven创建servlet-api-3.1.0.jar.lastUpdated
和servlet-api-3.1.0.pom.lastUpdated
为什么maven会创建servlet-api-3.1.0.jar.lastUpdated
而不是servlet-api-3.1.0.jar
?
答案 0 :(得分:1)
因为下载servlet-api-3.1.0.jar来自网络失败 你可以看到调试,并找到导致下载失败的原因。
maven find jar process:
1.来自你的loacal Responsitory(.m2
dir)
2.如果找不到,会从那里找到(你的pom.xml设置)
<repositories>
<repository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>public</id>
<name>Public Repositories</name>
<url>http://yourOwnRepository/nexus/content/repositories/thirdparty/</url>
</repository>
</repositories>
3.如果未找到,将从您的maven settings.xml config
中找到4.如果不喜欢,将从默认的maven存储库中找到
答案 1 :(得分:-1)
也许你应该使用其artifactId为javax.servlet-api而不是servlet-api的类。我遇到了这个问题,最终发现我使用的类是在javax.servlet-api中。 见这里,详细解释Difference between javax.servlet-api.jar vs servlet-api.jar