我有一些来自非maven项目的本地jar文件,我希望将其包含在基于maven的eclipse项目中。
这些jar文件正在经历很多变化,因为我和我的项目伙伴试图“修复”它们,所以我不想将它们上传到存储库以避免制作这个非maven项目的maven版本这是可能的。
当然,jar文件需要嵌入到生成的部署jar中。我们在使用Ant之前做了这个,让我们指定应该包含那些jar文件。
你怎么在maven做同样的事情?考虑到我们确实有maven依赖项,它们都可以正常工作,并且在部署中不需要。我见过的一些答案不允许这个要求。
这是我的一次尝试 - 问题是jar没有嵌入:
<dependency>
<groupId>se.krka.kahlua</groupId>
<artifactId>kahlua-core</artifactId>
<version>5.1_2.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/kahlua-5.1_2.1.0-core.jar</systemPath>
</dependency>
答案 0 :(得分:2)
系统路径是一个非常糟糕的主意。当其他人检查你的项目时,他不能再建造它了。 (我总是在许多公司看到这样的废话)。正确的解决方案是将jar安装到本地存储库中:
$ mvn install:install-file -Dfile = [JAR NAME] -DgroupId = [GROUPID OF JAR] -DartifactId = [ARAR的JAR] -Dversion = [JAR的版本] -Dpackaging =罐
在您的项目中,您只需在将jar安装到本地存储库后就像往常一样添加依赖项。
<dependency>
<groupId>[GROUPID OF JAR]</groupId>
<artifactId>[ARTIFACT OF JAR]</artifactId>
<version>[VERSION OF JAR]</version>
</dependency>
答案 1 :(得分:1)
您可以使用maven-install-plugin将kahlua-5.1_2.1.0-core.jar安装到本地存储库中,然后此依赖项将与其他依赖项一样,请参阅http://maven.apache.org/plugins/maven-install-plugin/usage.html。或者在与好友共享的位置创建一个远程存储库,并让他在每次更改它时将maven-deploy-plugin:deploy-file(http://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html)上传到他的jar中,并将此存储库添加到您的pom中。如果此jar经常更改,您可以使用SNAPSHOT版本