Maven 引入中央仓库中不存在/自定义/第三方的 jar 包、以及打包为生成可运行 jar 包

如果有些jar包在maven仓库中是不存在,我们有两种方式将其引入到我们的maven工程。我这里已smarthome-nbcodec-1.1.6-SNAPSHOT.jar 包为例。

第一种方式比较简单,只需将其jar包导入到本地 mavan 仓库中。

mvn install:install-file -Dfile=PATH/smarthome-nbcodec-1.1.6-SNAPSHOT.jar -DgroupId=com.my.smarthome -DartifactId=nbcodec -Dversion=1.1.6-SNAPSHOT -Dpackaging=jar -DgeneratePom=true 

其中,Dfile为jar包的位置,-DgroupId、-DartifactId、-Dversion可根据情况自定义,-Dpackaging为jar。然后就可以正常通过pom引入了。

	
			com.my.smarthome
			nbcodec
			1.1.6-SNAPSHOT
		

第二章方式可以将其放到项目中,然后引入进来

首先在项目中建立一个libs目录来存放第三方jar包。

Maven 引入中央仓库中不存在/自定义/第三方的 jar 包、以及打包为生成可运行 jar 包_第1张图片

pom 引入

	
			smarthome
			nbcodec
			1.1.6-SNAPSHOT
			system
			${pom.basedir}/libs/smarthome-nbcodec-1.1.6-SNAPSHOT.jar
		

其中,groupId、artifactId、version可根据情况自定义,scope只能是system范围,systemPath 为 jar 包的位置,pom.basedir为。

这样可以直接在代码中直接使用了,但是打包后还是运行不了,因此还得配置下打包相关的配置。

maven-assembly-plugin插件打包


		
			
			
				./libs 
				${project.build.directory}/dist/${artifactId}-${version}/lib 
				
					**/*.jar
				
			
			
			
				src/main/resources
				
				false
			
		

		
			
			
				maven-assembly-plugin
				
					false
					
						package.xml
					
					${project.build.directory}/dist/
				
				
					
						make-assembly
						package
						
							single
						
					
				
			
			
				org.apache.maven.plugins
				maven-jar-plugin
				2.4
				
					
						
							com.xiangtao.LotApp
							lib/
							true
						
						
							
							resources/ lib/smarthome-nbcodec-1.1.6-SNAPSHOT.jar
						
					
				
			
		
	

重点注意下位置别写错

Maven 引入中央仓库中不存在/自定义/第三方的 jar 包、以及打包为生成可运行 jar 包_第2张图片

Maven 引入中央仓库中不存在/自定义/第三方的 jar 包、以及打包为生成可运行 jar 包_第3张图片

如果最后还是不成功,可以将其打包后的jar包进行解压,然后检查看生成的 MANIFEST.MF 文件,看所有的包是否真确。

Maven 引入中央仓库中不存在/自定义/第三方的 jar 包、以及打包为生成可运行 jar 包_第4张图片

你可能感兴趣的:(java,maven,java,jar)