Maven项目定义的存储库不起作用

时间:2011-11-22 08:06:01

标签: java maven repository

分辨 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 installmvn -o install时,它仍然告诉我找不到jar文件。我不确定我在root pom.xml中添加的存储库是否正常工作 任何人都可以告诉我在哪里犯了错误,以及如何检查项目定义的存储库是否正常工作?谢谢。

谢谢你死,我想通了,这是我的愚蠢错误。

在我的项目中,我有3个模块。常见的android和桌面。我使用common / repo dir作为我的存储库。这就是我开始使用Maven的原因。除了2个错误,我做的一切都是正确的。

1.将根目录pom.xml中的存储库代码放在android目录中的pom.xml中。我只是觉得它会起作用,但事实并非如此。

2.如果我把代码放在正确的目录中,我应该修改网址,更改基础。

本课花了我3个小时〜

2 个答案:

答案 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)

  1. 运行mvn help:effective-pom

  2. 查看<repositories>部分,找到您的my-local-repo并查找其真实的路径(不包括file://前缀)

  3. 运行此命令(来自您自己找到的链接) 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://

  4. if(3)会在此处发布错误,如果没有 - 请确保文件夹the_path_you_looked_up_excluding_file://包含子文件夹结构grp/yourArtifactId/1.0/,其中包含your.jar

    < / LI>
  5. 毕竟您的项目必须能够找到具有此定义的依赖项

    <dependency>
        <groupId>grp</groupId>
        <artifactId>yourArtifactId</artifactId>
        <version>1.0</version>
    </dependency>