我在pom.xml中指定了以下依赖项(例如在此提到),它将在指定的sytempath下查找saaj.jar,而Maven用于从同一路径中选择它并正常工作。
<dependency>
<groupId>saaj</groupId>
<artifactId>saaj</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/saaj.jar</systemPath>
</dependency>
现在我已经转移到了Windows 7和Spring Tool套件2.7.1版本(以前的Win XP和Spring旧版本)。在这个新设置中,我遇到了错误。
Missing artifact saaj:saaj:jar:1.0:system
现在,它正在寻找saaj-1.0.jar而不是saaj.jar并在$ {basedir} /src/main/webapp/WEB-INF/lib/saaj/saaj/1.0/文件夹下而不是$ { BASEDIR} / SRC /主/ web应用/ WEB-INF / lib中/.
为什么会这样?请提供我以前的设置应该正常工作的解决方案。
答案 0 :(得分:0)
不要使用system
范围。它适用于 system 提供的库。鉴于您为此提供的路径,您显然正在创建一个Web应用程序。
使用war项目并指定具有provided
范围的依赖项(如果它们已经可用)(例如,因为它们由应用程序服务器提供),或者没有范围规范。 Maven将以正确的方式处理您的项目依赖性,包括Eclipse开发和应用程序服务器中的部署。
答案 1 :(得分:0)
避免使用systemPath,您必须创建一个本地存储库,例如:
这是您的pom文件:
<repositories>
<repository>
<id>local-repo</id>
<url>file://${basedir}/lib</url>
</repository>
</repositories>
<dependency>
<groupId>tiago.medici</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1</version>
</dependency>
在项目上,您将创建一个lib文件夹,以放置
生成的jar和maven pom文件mvn install:install-file -Dfile=c:\tiago.medici-0.0.1.jar -DgroupId=tiago.medici -DartifactId=eureka -Dversion=0.0.1 -Dpackaging=jar
tiago.medici-0.0.1.pom
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>tiago.medici</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1</version>
<description>POM was created from install:install-file</description>
</project>