网站备案 多少钱,wordpress replytocom,网站建设平台怎么样,怎么登录企业网站使用场景#xff1a;
maven打出的jar中pom.xml动态替换占位符 有些时候某些公共工具jar包被项目引用后发现公共jar的pom.xml中的version依然还是占位符#xff0c;例如下面 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok
maven打出的jar中pom.xml动态替换占位符 有些时候某些公共工具jar包被项目引用后发现公共jar的pom.xml中的version依然还是占位符例如下面 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/version/dependency如何让其打包后动态替换呢即替换为最终的版本,像下面这样 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.8/version/dependency打包后发现会在jar包中生成如果路径:target/classes/META-INF/maven/ g r o u p I d / {groupId}/ groupId/{artifactId}/pom.xml,经测试这个pom.xml才是最终生效的配置,那么如何替换呢。经过查找maven源码发现是硬编码到jar中的,源码如下 org.apache.maven.archiver.MavenArchiver#createArchive 所以我这边采取的是通过copy-resources重新替换解析后pom到META-INF/maven/ g r o u p I d / {groupId}/ groupId/{artifactId}/pom.xml,解决方法如下:
dependencies......
/dependencies
buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdexecutionsexecution!--不要定义为default-resources否则会覆盖maven默认的--iddefault-resources1/idphasevalidate/phasegoalsgoalcopy-resources/goal/goalsconfiguration!--将当前项目下pom.xml解析替换占位符复制到目标文件中--outputDirectorytarget/classes/META-INF/maven/${groupId}/${artifactId}//outputDirectoryoverwritetrue/overwriteresourcesresourcedirectory.//directoryincludesincludepom.xml/include/includesfilteringtrue/filtering/resource/resources/configuration/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-plugin-plugin/artifactIdversion3.5/versionconfigurationskipErrorNoDescriptorsFoundtrue/skipErrorNoDescriptorsFound/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdversion3.2.0/versionexecutionsexecutionphasegenerate-resources/phasegoalsgoaljar/goal/goals/execution/executions/plugin/plugins/build另外maven如何错误的类不打入包内
因为依赖的环境不同,有些类可能会出现编译错误不想打入jar中可以通过在profile中自定义插件排除,如下:在saas_prod打包时所有com/xxx/local 包下面的类将不会打入其中 profileidsaas_prod/idactivationactiveByDefaulttrue/activeByDefault/activationbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationexcludesexcludecom/xxx/local/**/*.java/exclude/excludes/configuration/plugin/plugins/build/profile