如何将本地jar文件添加到Maven项目?
如何直接在我的项目的库源中添加本地jar文件(尚未成为Maven存储库的一部分)?
按如下方式将JAR安装到本地Maven存储库中:
mvn install:install-file
-Dfile=<path-to-file>
-DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<packaging>
-DgeneratePom=true
Where: <path-to-file> the path to the file to load
<group-id> the group that the file should be registered under
<artifact-id> the artifact name for the file
<version> the version of the file
<packaging> the packaging of the file e.g. jar
参考
您可以直接添加本地依赖项(正如在包含propriatery库的构建maven项目中提到的),如下所示:
<dependency>
<groupId>com.sample</groupId>
<artifactId>sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath>
</dependency>
首先,我想给这个答案的功劳归功于匿名的stackoverflow用户 - 我很确定我以前见过类似的答案 - 但现在我找不到它了。
将本地jar文件作为依赖项的最佳选择是创建本地maven存储库。 这样的回购只是pom文件的正确目录结构。
在我的示例中:我在${master_project}
位置拥有主项目,并且子项目1位于${master_project}/${subproject1}
然后我在${master_project}/local-maven-repo
创建mvn存储库
在位于subproject1的pom文件中,需要指定${master_project}/${subproject1}/pom.xml
存储库,它将文件路径作为URL参数:
<repositories>
<repository>
<id>local-maven-repo</id>
<url>file:///${project.parent.basedir}/local-maven-repo</url>
</repository>
</repositories>
可以像任何其他存储库一样指定依赖关系。 这使您的pom存储库独立。 例如,一旦需要的jar在maven central中可用,你只需要从你的本地仓库中删除它,它将从默认的仓库中被取消。
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.servicebinder</artifactId>
<version>0.9.0-SNAPSHOT</version>
</dependency>
最后但并非最不重要的一件事是使用-DlocalRepositoryPath开关将jar文件添加到本地存储库,如下所示:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file
-Dfile=/some/path/on/my/local/filesystem/felix/servicebinder/target/org.apache.felix.servicebinder-0.9.0-SNAPSHOT.jar
-DgroupId=org.apache.felix -DartifactId=org.apache.felix.servicebinder
-Dversion=0.9.0-SNAPSHOT -Dpackaging=jar
-DlocalRepositoryPath=${master_project}/local-maven-repo
Onece jar文件被安装,这样mvn repo可以被提交给代码库,并且整个设置是独立于系统的。 (在github中的工作示例)
我同意让JAR致力于源代码回购并不是一个好的做法,但在现实生活中,快速和肮脏的解决方案有时比完全成熟的nexus回购更好,以承载一个无法发布的jar。
链接地址: http://www.djcxy.com/p/5047.html上一篇: How to add local jar files to a Maven project?
下一篇: differences between dependencymanagement and dependencies in maven