核心内容摘要
云容笔谈·东方红颜影像生成系统C语言基础调用示例:轻量级命令行工具开发
本文介绍如何使用Maven进行项目打包并通过配置maven-assembly-plugin和maven-shade-plugin添加依赖及主类。
针对打包过程中出现的签名错误问题提供了具体的解决方案包括排除不必要的文件和手动添加主类。
打包依赖同时添加主类使用 assembly:assembly打包pluginspluginartifactIdmaven-assembly-plugin/artifactIdconfigurationarchivemanifestmainClassrecommend.merge/mainClass/manifest/archivedescriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefs/configuration/plugin使用package打包同时加入依赖指定主类buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-shade-plugin/artifactIdversion
3.
0/versionconfigurationfiltersfilterartifact*:*/artifactexcludesexcludeMETA-INF/*.SF/excludeexcludeMETA-INF/*.DSA/excludeexcludeMETA-INF/*.RSA/exclude/excludes/filter/filterstransformerstransformer implementationorg.apache.maven.plugins.shade.resource.ManifestResourceTransformermainClasscal.hive/mainClass/transformer/transformers/configurationexecutionsexecutionphasepackage/phasegoalsgoalshade/goal/goals/execution/executions/plugin/plugins/build报错Missing artifact jdk.tools:jdk.tools:jar:
7dependencygroupIdjdk.tools/groupIdartifactIdjdk.tools/artifactIdversion
7/versionscopesystem/scopesystemPath${JAVA_HOME}/lib/tools.jar/systemPath/dependency报错java.lang.SecurityException: Invalid signature file digest for Manifest main attributes由于某些包的重复引用以至于打包之后的META-INF的目录下多出了一些.SF,.DSA,*.RSA文件所致主类可以在MANIFEST.MF文件中手动添加MANIFEST.MF文件内容Manifest-Version:
0Archiver-Version: Plexus ArchiverBuilt-By: AdministratorCreated-By: Apache Maven
3.
9Build-Jdk:
1.