在Maven中本地引用依赖的jar

3

在我的项目中,我正在使用一个外部的jar包,但该jar包不在公司的Maven仓库中。因此,我遇到了以下错误:

Could not resolve dependencies for project.Could not find artifact in http://company-name/maven2

是否有任何方法可以在公司添加该jar到其存储库之前,以本地方式引用此jar作为解决方法。例如,如果我创建一个lib文件夹并将jar放入其中,我可以要求Maven从该lib文件夹中获取jar而不是从Maven存储库下载吗?

2个回答

1
最好的方法是使用可在Google Code上获得的实用AddJars Maven Plugin。因此,将jar文件包含到Maven项目中的最简单方法是将其存储在子文件夹(例如lib)中。然后,在pom.xml中添加以下内容即可:
<plugin>
    <groupId>com.googlecode.addjars-maven-plugin</groupId>
    <artifactId>addjars-maven-plugin</artifactId>
    <version>1.0.5</version>
    <executions>
        <execution>
            <goals>
                <goal>add-jars</goal>
            </goals>
            <configuration>
                <resources>
                    <resource>
                        <directory>${project.basedir}/lib</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

关于插件配置还有更多内容在这里。特别是在NetBeans下启用自动完成需要一些额外的步骤。

不幸的是,这需要Maven版本3.0.3或更高版本


1

您需要安装:install-file,它会将JAR文件的副本安装到您本地的.m2/repository中,然后您的POM文件就可以依赖它了。


使用上述命令后,我可以在我的Maven存储库中看到所需的jar文件。但是当我使用mvn install编译项目时,仍然会出现相同的错误,mvn仍然在引用http://company-name/maven2。 - Addict
请检查本地Maven仓库中pom文件中所需jar包的groupId-artifactId-version是否与<dependency/>引用一致。 - Allen Parslow

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