自己的几个项目之间往往需要互相引用,如果同为maven项目,那应该如何引用呢?
如A项目需要引用B项目生成的jar包,则只需对B项目执行maven install操作
执行该操作后就会在你的本地repo中对应目录下生成该jar包
此时A即可在自己的pom.xml文件中添加该依赖项如:
<dependency>
<groupId>xx.xx.xx</groupId>
<artifactId>A</artifactId>
<version>0.0.1</version>
</dependency>
而自己的项目大多情况在相同的包路径下,所以此时也可以使用maven内置变量,maven常用内置变量如下:
- ${basedir} 项目根目录
- ${project.build.directory} 构建目录,缺省为target
- ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
- ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
- ${project.packaging} 打包类型,缺省为jar
- ${project.xxx} 当前pom文件的任意节点的内容
此时上面的依赖项也可修改为:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>A</artifactId>
<version>${project.version}</version>
</dependency>
当依赖存在冲突时可以使用exclusion,在dependency中添加子项
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>