maven项目打包时引入外部jar包
文章首发于:clawhub.club
最近在重构公司的老项目代码,将jar包通过maven管理,有些包不存在于maven仓库,所以要通过maven将本地jar打到最终的包中。
1 | <!--淘宝大鱼--> |
pom文件的build节点下必须增加资源配置,否则jar不会打进去。
1 | <build> |
其中各个标签含义:
- dependency:每个dependency都对应一个jar包。
- groupId:项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app
- artifactId:构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个 特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源 码,二进制发布和WARs等。
- systemPath:系统路径
- version:项目当前版本,格式为:主版本.次版本.增量版本-限定版本号
- scope:maven认为,程序对外部的依赖会随着程序的所处阶段和应用场景而变化,所以maven中的依赖关系有作用域(scope)的限制。scope包含如下的取值:compile(编译范围)、provided(已提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围)
- ${project.basedir}:项目基础路径
- build:构建项目需要的信息
- resources:这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。
- resource:这个元素描述了项目相关或测试相关的所有资源路径。
- directory:描述存放资源的目录,该路径相对POM路径
- targetPath:描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例 子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven /messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。
- includes:包含的模式列表.
- include:包含的模式,例如**/*.xml.
- plugins:使用的插件列表 。
- plugin:plugin元素包含描述插件所需要的信息。
参考:
maven的pom.xml文件标签含义
maven项目打包时外部引入jar包无法打到项目中的解决方案
Spring Boot Maven项目使用SystemPath引用第三方平台遇到的大坑
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!