向Maven依赖中添加外部JAR包

5

我正在尝试在基于Maven的项目tigase-server中,使用外部的JAR文件tigase-muc,并且我是在Eclipse IDE下进行的。
我已经尝试了以下方法:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
[INFO] Scanning for projects...
[INFO] 
[INFO] Building Tigase XMPP Server 5.1.0 5.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3:install-file (default-cli) @ tigase-server ---
[INFO] Installing /home/haider/Downloads/tigase-muc-2.2.0.jar to /
home/haider/.m2/repository/tigase/tigase-muc/2.2.0/tigase-muc-2.2.0.jar
[INFO] --------------
[INFO] BUILD SUCCESS
[INFO] -------------
[INFO] Total time: 0.791s
[INFO] Finished at: Mon Aug 05 18:06:48 PKT 2013
[INFO] Finished at: Mon Aug 05 18:06:48 PKT 2013
[INFO] ----------------------

根据上述“BUILD SUCCESS”消息,我认为JAR文件已正确添加,但是当我在POM文件中添加以下依赖项时

        <dependency>
        <groupId>tigase</groupId>
        <artifactId>tigase-xmltools</artifactId>
        <version>3.3.6</version>
        <scope>compile</scope>
    </dependency>

我遇到了以下错误:缺少依赖项tigase:tigase-muc。这个消息清楚地表明它没有获取我在依赖中引用的JAR文件。

非常感谢您的贡献。


你是否知道 http://maven.tigase.org/ Maven 仓库? - tbsalling
@tbsalling,我刚刚检查了一下,它和我的东西是一样的。你能告诉我我是否以正确的方式安装它吗?如果有其他建议,将不胜感激。谢谢。 - Haider Ali
5个回答

2
看起来它是这样安装Jar的:[INFO] Installing /home/haider/Downloads/tigase-muc-2.2.0.jar到/home/haider/.m2/repository/tigase/tigase-muc/2.2.0/tigase-muc-2.2.0.jar 由于Maven的工作方式,其组ID被解析为“tigase”,artifactId为“tigase-muc”,版本为“2.2.0”。因此这是正确的。
现在,我看了一下可用的tigase:tigase-xmltools:3.3.6这里,他根本没有定义任何依赖关系。
因此,即使您不指定此依赖项,似乎也会发生这种情况 :)。
我建议您运行 mvn dependency:tree 以查看此依赖项来自何处。
希望这能帮到您。

1
一个更完整的错误信息可以帮助缩小出错范围。您安装的构件应该可以通过以下依赖项解决:
<dependency>
    <groupId>tigase</groupId>
    <artifactId>tigase-muc</artifactId>
    <version>2.2.0</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

您正在引用tigase-xmltools,我假设它依赖于tigase-muc。
我的猜测是tigase-xmltools可能依赖于tigase-muc的实际pom文件,尽管您已经有了jar包。请查看完整的错误消息和tigase-xmltools的pom文件。
使用-DgeneratePom=true选项安装该文件可能会有所帮助。

使用 maven install 命令添加 JAR 文件时,没有出现错误消息。相反,它会给我 BUILD SUCCESS 信息。 但是当我在 POM 文件中添加依赖项时,它会给出错误消息:issing artifact tigase:tigase-muc - Haider Ali

0

如果您已经将jar添加到Maven依赖项中,那么它应该会自动添加到Maven依赖项中。

在构建项目时是否出现任何特定错误?如果是,则可以请分享错误跟踪信息。

还要查看Maven Dependency Scope

此外,请验证您的本地Maven存储库- M2_HOME\tigase\tigase-xmltools\3.3.6\并检查该jar文件是否正确安装。


感谢回复,请看一下我的问题,我已经编辑并展示了一些更详细的问题描述。 - Haider Ali
你是否验证了pom.xml中的依赖定义是否正确?我在你的问题中看到了tigase-xmltools的定义,但没有看到tigase-muc的定义。 - Arpit

0

0
我的解决方案是使用嵌入式库存储库:

enter image description here

并添加本地库:

<dependencies>
<dependency>
    <groupId>ok</groupId>
    <artifactId>comet4j-tomcat7</artifactId>
    <version>1.0.0</version>
</dependency>
</dependencies>


<repositories>
    <repository>
        <id>lib</id>
        <name>lib</name>
        <url>file://${basedir}/lib</url>
    </repository>
</repositories>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接