Maven跳过依赖文件?
问题描述:
我正在为我的项目使用maven。我有5个地方的jar文件作为我的pom.xml指定如下相关文件:Maven跳过依赖文件?
<dependency>
<groupId>EWSAPI</groupId>
<artifactId>EWSAPI</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${basedir}/EWSAPI1.1.jar</systemPath>
</dependency>
<dependency>
<groupId>jcifs</groupId>
<artifactId>jcifs</artifactId>
<version>1.3.15</version>
<scope>system</scope>
<systemPath>${basedir}/jcifs-1.3.15.jar</systemPath>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.4</version>
<scope>system</scope>
<systemPath>${basedir}/commons-codec-1.4.jar</systemPath>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
<scope>system</scope>
<systemPath>${basedir}/commons-httpclient-3.1.jar</systemPath>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>system</scope>
<systemPath>${basedir}/commons-logging-1.1.1.jar</systemPath>
</dependency>
现在,当我尝试安装MVN在命令提示符下安装的依赖关系。我得到以下信息
The following files where skipped:
EWSAPI:EWSAPI:java-source:sources:1.1
commons-codec:commons-codec:java-source:sources:1.4
commons-httpclient:commons-httpclient:java-source:sources:3.1
commons-logging:commons-logging:java-source:sources:1.1.1
而且一个文件jfis被跳过
我不明白(这是上面提到的依赖一样)为什么Maven是这样做?我感谢你的帮助。由于
答
尝试这样:
<repositories>
<repository>
<id>my-internal-site</id>
<url>file:///${basedir}</url>
</repository>
</repositories>
然后删除系统路径参数。
另外,你确定范围应该是系统?
答
从这个问题,目前还不清楚你想要做什么。
一方面你提到I have 5 local jar files as dependent files
,你指定<system>
范围在pom.xml
。另一方面你提到运行mvn install
to install the dependencies
。
除非有令人信服的理由,尤其对于第三方依赖关系(如commons-codec
),否则您应该避免使用<system>
作用域。
mvn install
构建指定的项目并将其安装在本地存储库中。它不是安装dependencies
。
在分别下载它们之后,您可以使用mvn install:install-file <params>
到install
依赖关系到本地存储库。他们没有在${basedir}
中获得installed
。
如果以上方法无效,请更新您的问题。