南昌网站建设费用,网站客户端开发,网站备案注意事项,网站自适应布局maven 模块打包
1#xff09;maven 模块打包jar文件时#xff0c;指定包含依赖#xff08;with-dependencies#xff09;#xff1b; 2#xff09;maven 模块打包jar文件时#xff0c;指定入口MainClass、打包生成可执行的jar#xff1b;
vi qftools/common/src/main…maven 模块打包
1maven 模块打包jar文件时指定包含依赖with-dependencies 2maven 模块打包jar文件时指定入口MainClass、打包生成可执行的jar
vi qftools/common/src/main/java/com/xxx/qftools/common/Main.java
package com.xxx.qftools.common;
public class Main { public static void main(String args[]) { System.out.printf(Hello); } }
vi qftools/common/pom.xml ... build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-install-plugin/artifactId /plugin plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-jar-plugin/artifactId /plugin plugin groupIdorg.codehaus.mojo/groupId artifactIdexec-maven-plugin/artifactId /plugin !-- maven-shade-plugin: 将所有依赖包都打进jar包中jar命名带后缀 shaded-with-dependency -- plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-shade-plugin/artifactId version2.4.3/version executions execution phasepackage/phase goals goalshade/goal /goals configuration !-- 设置将依赖整合到一个自定义名称的 JAR 包。如果不设置此项 依赖将整合到 Maven 无插件时的默认 JAR 包并生成一个前缀为 original- 的无依赖 JAR 包。 -- shadedArtifactAttachedtrue/shadedArtifactAttached !-- 设置生成的 JAR 包后缀名 -- shadedClassifierNameshaded-with-dependencies/shadedClassifierName !-- 设置程序运行入口 -- transformers transformer implementationorg.apache.maven.plugins.shade.resource.ManifestResourceTransformer mainClasscom.xxx.qftools.common.Main/mainClass /transformer /transformers /configuration /execution /executions /plugin /plugins /build 编译打包后生成2个jar文件 common-1.0-SNAPSHOT-shaded-with-dependencies.jar 打包包含了所有依赖 common-1.0-SNAPSHOT.jar 不包含依赖 执行jarwith-dependencies的指定拉MainClass的jar执行时无需再指定MainClass java -jar common-1.0-SNAPSHOT-shaded-with-dependencies.jar 执行jar未指定MainClass的jar执行时必须 -cp 指定MainClass java -cp common-1.0-SNAPSHOT.jar com.xxx.qftools.common.Main 如果 java -jar 执行 未指定MainClass的jar时会报错jar中没有主清单属性即jar文件中的META-INF/MANIFEST.MF文件中没有 Main-Class: com.xxx.qftools.common.Main java -jar common-1.0-SNAPSHOT.jar common-1.0-SNAPSHOT.jar中没有主清单属性