Maven管理dubbo项目
配置文件解析
maven-assembly-plugin
- 简要用处:将依赖打包进jar中
- jar文件可能较大
- maven-assembly-plugin的用途是制作项目分发包,该分发包可能包含了项目的可执行文件、源代码、readme、平台脚本等等。
- maven-assembly-plugin支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的,例如用户可以按文件级别的粒度、文件集级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包,此外,包含和排除配置也是支持的。maven-assembly-plugin要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的single目标可以直接在命令行调用,也可以被绑定至生命周期。
示例:
“`
maven-assembly-plugin
src/main/assembly/assembly.xml
make-assembly
package
single
- descriptor描述文件路径
- phase 将插件绑定在 package的生命周期上
- goal 表示插件是单例模式
4. assmebly文件
- 配置了打包的目录以及相应的设置
assembly
tar.gz
true
${project.build.directory}/dubbo/META-INF/assembly/bin
bin
0755
src/main/assembly/conf
conf
0644
lib
- fileMode 文件的权限
- directory 是项目路径
- outputDirectory 打包后的目标路径
- fileSet 是配置文件
- dependenceySet 是配置依赖
### maven-dependency-plugin
1. 作用
- 将第三方jar包打包到一个文件夹中,打包时使用mvn clean,mvn package,服务器上上传一次lib包,后面的应用程序jar包文件很小
- maven-dependency-plugin最大的用途是帮助分析项目依赖,dependency:list能够列出项目最终解析到的依赖列表,dependency:tree能进一步的描绘项目依赖树,dependency:analyze可以告诉你项目依赖潜在的问题,如果你有直接使用到的却未声明的依赖,该目标就会发出警告。maven-dependency-plugin还有很多目标帮助你操作依赖文件,例如dependency:copy-dependencies能将项目依赖从本地Maven仓库复制到某个特定的文件夹下面
2. 示例:
maven-dependency-plugin
unpack
package
unpack
com.alibaba
dubbo
project.parent.version
{project.build.directory}/dubbo
META-INF/assembly/**
“`
- ${project.build.directory}是指当前工程的target目录
- phase 将插件绑定在package生命周期中
- goal 命令 copy copy-dependencies and unpack unpack-dedpendencies
1. copy and unpack
- 能将 项目中一些 arfifact拷贝到某个目录下
- 比如上面的com.alibaba-duboo拷贝到 target/dubbo目录下
- 它们之间的区别只是 unpack 是解压以后的