【maven解决本地无名包的GAV有关问题】
Mavne项目构建的时候,需要引入本地其他非maven项目工程A的包,这个时候A由于属于“三无”包,缺少GAV,这个时候在maven项目构建就会有问题。
备注:
GAV,也就是下面英文字母的首写,也叫做Maven坐标,是用来唯一标识jar包的。
G:groupId 一般来代表项目名称,如:com.deyang.share
A:artifactId 一般来代表模块名称,如:share-common
V:version 模块版本,如:0.0.1-snapshot
通过这三个标识就可以唯一地确定jar包在maven仓库中的唯一地址了,然后就可以找到对应的jar包。网站:http://mvnrepository.com/,可以在顶部的搜索框中搜索jar包,然后找到需要的版本,然后可以找到相应的GAV,复制后粘贴到pom.xml中就可以了,maven会去自动下载相应的及其依赖的jar包。 类似如下的结构: <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
解决方案一:
<dependency>
<groupId>cn.com.util</groupId>
<artifactId>util</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:\BigData_workspace\mavendemo\util.jar</systemPath>
</dependency>
缺点:只能保证本地项目打包编译不出问题,打出包的结构不包含util任何东西,运行会出错
解决方案二:
本地安装方式,命令如下:
mvn install:install-file -DgroupId=cn.com -DartifactId=util2str -Dversion=1.0 -Dpackaging=jar -Dfile=C:/22/util.jar
引入jar包方式
<dependency>
<groupId>cn.com</groupId>
<artifactId>util2str</artifactId>
<version>1.0</version>
</dependency>
就这样打包也不会出问题
解决方案三:这种方式尝试失败