分辨 P.S.因为我现在没有足够的声誉回答我自己的问题,所以我把解决方案放在了问题中。
我刚开始在我的android项目中使用Maven。我使用的是一个名为libgdx的游戏引擎,它不在中央仓库中,所以我必须自己安装它。
检查说明后,我使用这种方法。https://stackoverflow.com/q/2230464/531223。 我在root pom.xml中添加了以下定义的xml代码
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${basedir}/common/repo</url>
</repository>
</repositories>
使用该答案中的方法成功安装我需要的jar文件。但是,当我执行命令mvn install
或mvn -o install
时,它仍然告诉我找不到jar文件。我不确定我在root pom.xml中添加的存储库是否正常工作
任何人都可以告诉我在哪里犯了错误,以及如何检查项目定义的存储库是否正常工作?谢谢。
谢谢你死,我想通了,这是我的愚蠢错误。
在我的项目中,我有3个模块。常见的android和桌面。我使用common / repo dir作为我的存储库。这就是我开始使用Maven的原因。除了2个错误,我做的一切都是正确的。
1.将根目录pom.xml中的存储库代码放在android目录中的pom.xml中。我只是觉得它会起作用,但事实并非如此。
2.如果我把代码放在正确的目录中,我应该修改网址,更改基础。
本课花了我3个小时〜
答案 0 :(得分:15)
我同意Oleg的回答,但如果问题在他的所有步骤后仍然存在,请检查您的global settings.xml文件以获取该标记的可能用途。
镜像设置始终指向相同的仓库并忽略您在项目中定义的任何仓库。
e.g。你的pom.xml有
<repositories>
<repository>
<id>project.local</id>
<name>project</name>
<url>file://${project.basedir}/repo</url>
</repository>
</repositories>
确保<USER_HOME>\.m2\settings.xml
忽略它
<mirrors>
<mirror>
<id>central</id>
<name>Central</name>
<url>http://my.nexus.ip/nexus/content/repositories/central/</url>
<mirrorOf>!project.local,*</mirrorOf>
</mirror>
</mirrors>
答案 1 :(得分:2)
运行mvn help:effective-pom
查看<repositories>
部分,找到您的my-local-repo
并查找其真实的路径(不包括file://前缀)
运行此命令(来自您自己找到的链接)
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file -Dfile=/path/to/your.jar -DgroupId=yourGroup -DartifactId=yourArtifactId -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=the_path_you_looked_up_excluding_file://
if(3)会在此处发布错误,如果没有 - 请确保文件夹the_path_you_looked_up_excluding_file://
包含子文件夹结构grp/yourArtifactId/1.0/
,其中包含your.jar
毕竟您的项目必须能够找到具有此定义的依赖项
<dependency>
<groupId>grp</groupId>
<artifactId>yourArtifactId</artifactId>
<version>1.0</version>
</dependency>