编译时未拾取已安装的Jar

时间:2014-08-20 10:57:34

标签: maven

我使用此命令

成功地将一个本地jar安装到我的仓库
mvn install:install-file -Dfile=myjar.jar -DgroupId=com.mygroup -DartifactId=art -Dversion=1.3 -DlocalRepositoryPath=/home/me/.m2/repository -Dpackaging=jar

然后在我的仓库中正确创建了jar文件和pom,所以我可以在com / mygroup / artifact / 1.3 /

下找到它

但是当我尝试在我的项目pom中引用它时(确切地说是在安装的pom中定义的)

<dependency>
        <groupId>com.mygroup</groupId>
        <artifactId>artifact</artifactId>
        <version>1.3</version>
</dependency>

我在尝试编译时遇到错误。它无法找到已安装的jar。

Failed to execute goal on project myproject: Could not resolve dependencies for project com.myproject:war:1.0: Failure to find com.mygroup:artifact:jar:1.3 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

我很难理解为什么它没有拿起我安装的jar。我做错了什么?

2 个答案:

答案 0 :(得分:1)

在您的mvn install:install-file中,您发布的是&#34; art&#34;的artifactID,稍后您将其称为&#34; artifact&#34;。我认为这只是你在遇到错误后所做的混淆中的一个错字。

如果没有更多细节,很难看到会发生什么。我建议你吹掉你的本地仓库,重新部署本地文件,然后再试一次。另外,不要指定localRepositoryPath(默认是你想要的,这是另一个潜在的错误来源)。确保你以相同的用户身份执行此操作,最好是从同一个shell中确定。

答案 1 :(得分:0)

我使用了以下内容......

mvn install:install-file -Dfile=C:\Autus1\Autus1_Practice\bundle\target\Autus1_Service-1.0-SNAPSHOT.jar -DgroupId=com.autus1.cq5 -DartifactId=Autus1_Service -Dversion=1.3 -DlocalRepositoryPath=C:\Users\manish_ranjan\.m2\repository -Dpackaging=jar

而不是......

mvn install:install-file -Dfile=C:\Autus1\Autus1_Practice\bundle\target\Autus1_Service-1.0-SNAPSHOT.jar -DgroupId=com.autus1.cq5 -DartifactId=Autus1_Service -Dversion=1.0-SNAPSHOT -DlocalRepositoryPath=C:\Users\manish_ranjan\.m2\repository -Dpackaging=jar

它有效。 :)

唯一的变化是版本“1.3”而不是“1.0-SNAPSHOT”,这给了我解决方案,我的project2开始从我的project1识别这种依赖

 <dependency> 
       <groupId>com.autus1.cq5</groupId> 
       <artifactId>Autus1_Service</artifactId>
       <version>1.3</version>
      <scope>compile</scope> 
 </dependency> 

感谢您的线索!