使用maven的3个常用插件时候,这几点可千万要注意了
背景
maven常用的三个插件对打包有不同的作用:mavenjarplugin:处理jar包生成springbootmavenplugin:SpringBoot项目打包mavenassemblyplugin:自定义打包结构。
而实际开发过程中这三个插件可能都综合使用,本文类介绍混合使用这些插件时需要注意的事项。SpringBoot打包时排除文件
SpringBoot项目打包时一般会抽出配置文件和静态资源文件到指定目录,然后通过spring。config。additionallocationfile:xxx额外指定配置文件。
这样的话,SpringBoot打包时就需要排除配置文件和静态资源文件,可以用mavenjapluginr插件来排除:plugingroupIdorg。apache。maven。pluginsgroupIdmavenjarpluginartifactIdversion3。2。0versionconfigurationexcludesexclude。ymlexcludeexcludestaticexcludeexcludelibexcludeexcludesconfigurationplugin复制代码
注意:如果排除文件夹,需要后面两个星星。Spring打包本地依赖jar
如果项目需要依赖本地某目录下的jar包,而它又没有在仓库中发布的话,可以通过如下方式添加依赖:dependencygroupIdXXXXgroupIdXXXartifactIdversion1。0。0versionscopesystemscopesystemPath{project。basedir}srcmainresourceslibxxx。jarsystemPathdependency复制代码
值得注意的是,如果项目用了SpringBoot打包插件,默认是不会将system作用域的jar打入lib目录的,需要添加includeSystemScope配置将第三方jar包加入到lib:plugingroupIdorg。springframework。bootgroupIdspringbootmavenpluginartifactIdconfigurationincludeSystemScopetrueincludeSystemScopeconfigurationplugin复制代码编译时排除指定文件
pom。xml的resources配置可以对资源文件进行筛选,常见配置如下:resourcesresourcedirectorysrcmainresourcesdirectoryfilteringtruefilteringexcludesexcludestaticexcludeexclude。ymlexcludeexcludesresourceresources复制代码
该方式会直接影响编译时资源文件的处理过程,即target目录下的classes目录中就不包括指定文件,从而导致本地运行时缺少配置文件,所以开发期间不建议用这种方式。复制粘贴的原则
想起以前看到的一段经典话语:
我从互联网上得到的最好的经验之一,就是永远不要复制和粘贴不是自己编写的代码。如果你一定要复制,那就照着它逐字输入,逼着自己思考,这些代码实际上是什么意思。
除了代码需要复制粘贴,平时文档编写时也免不了拿旧文档做模板。
word文档编写过程中,如果内容是复制、粘贴的,我的经验是,完成后必做几项检查:标题:检查文档中的标题、系统名称是否更正为目标文档的内容。目录更正:文档页码变化后,必须重新生成目录与之对应。修改内容校对:修改过的内容,需要校对至少三遍。启示录
今天在Info刷到一个介绍周志明大神的视频,我知道他是因为初入行的时候买过一本书《深入理解Java虚拟机》。这么一个IT大神,竟然一直保持着写代码的习惯,GitHub上每年提交次数多达1000次。
他说自己是兼职做管理的程序员,不写代码这个决定,就像很多人毕业后就丢掉了数学、物理等基础知识一样,一旦丢掉,就很难再捡起来。
敬佩之心,油然而生!