
| 参数 | 含义 |
|---|---|
| modelVersion | Pom模板 版本信息(保证Pom可正常解析) |
| groupId | 唯一标识 |
| artifactId | 唯一标识 |
| version | 版本 |
| packaging | 包类型 |
| description | 描述信息 |
| dependencyManagement | 依赖管理 |
| name | 项目名称 |
| repository | 远程仓库 |
| pluginRepository | 插件仓库 |
| build | 构建配置 |
| outputDirectory | class 输出位置 |
| resource | 资源 |
| plugin | 插件 |
| … | … |
更多详细的配置使用可直接参考官网的参数说明
## 产品唯一标识
org.sun.moon
moon-rabbit
1.0.0
| groupId | artifactId | version |
|---|---|---|
| 域名.公司名.项目名 | 项目名-模块名 | 版本 |
一般来说,groupId 格式:

## 指定父依赖


依赖和包分离
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.demogroupId>
<artifactId>moonartifactId>
<version>V1.0.0version>
<properties>
<maven.compiler.source>8maven.compiler.source>
<maven.compiler.target>8maven.compiler.target>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<other.jar.path>libother.jar.path>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<version>2.7.4version>
dependency>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>31.1-jreversion>
dependency>
dependencies>
<build>
<finalName>my-demofinalName>
<outputDirectory>D:\outoutputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-jar-pluginartifactId>
<version>3.3.0version>
<configuration>
<outputDirectory>D:\outoutputDirectory>
<archive>
<addMavenDescriptor>falseaddMavenDescriptor>
<manifest>
<mainClass>com.demo.moon.RabbitmainClass>
<addClasspath>trueaddClasspath>
<classpathPrefix>${other.jar.path}/classpathPrefix>
manifest>
archive>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-dependency-pluginartifactId>
<version>3.3.0version>
<executions>
<execution>
<id>copy-dependenciesid>
<phase>packagephase>
<goals>
<goal>copy-dependenciesgoal>
goals>
<configuration>
<outputDirectory>D:\out\${other.jar.path}outputDirectory>
configuration>
execution>
executions>
plugin>
plugins>
build>
project>


可以将Jar包扩展名改为ZIP并解压缩,查看下 MF 文件信息

运行 Jar 包 (未使用到依赖包的功能)

运行 class 文件,注意点
错误: 找不到或无法加载主类 com.demo.moon.Rabbit
Java 命令执行 Class 文件 遵循以下原则
1.根据 Classpath 指定的位置来查找; Class 要包含当前目录,检查环境变量是否包含中括号内的信息 [.;]
2.以当前用户路径为基础,根据包路经去搜索 Class 文件,即在当前执行 Java 命令的目录,依次新建包路经并将Class文件放于最里层,才可以执行

根据上面原则,如果 Java 会从上层目录检索 Class 文件,则可以在 com 目录内执行
修改环境变量

执行

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.demogroupId>
<artifactId>moonartifactId>
<version>V1.0.0version>
<properties>
<maven.compiler.source>8maven.compiler.source>
<maven.compiler.target>8maven.compiler.target>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<other.jar.path>libother.jar.path>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<version>2.7.4version>
dependency>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>31.1-jreversion>
dependency>
dependencies>
<pluginRepositories>
<pluginRepository>
<id>aliyun-pluginid>
<url>https://maven.aliyun.com/nexus/content/groups/public/url>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
<build>
<finalName>my-demofinalName>
<outputDirectory>D:\outoutputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-assembly-pluginartifactId>
<version>3.4.2version>
<configuration>
<outputDirectory>D:\outoutputDirectory>
<archive>
<manifest>
<mainClass>com.demo.moon.RabbitmainClass>
manifest>
archive>
<descriptorRefs>
<descriptorRef>jar-with-dependenciesdescriptorRef>
descriptorRefs>
<appendAssemblyId>falseappendAssemblyId>
configuration>
<executions>
<execution>
<id>make-assemblyid>
<phase>packagephase>
<goals>
<goal>singlegoal>
goals>
execution>
executions>
plugin>
plugins>
build>
project>



清单文件

项目结构

启动类
package com.demo.moon;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author
* @date 2022-09-29 15:38
* @since 1.8
*/
@SpringBootApplication
public class MoonApplication {
public static void main(String[] args) {
SpringApplication.run(MoonApplication.class,args);
}
}
初始化
package com.demo.moon.config;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import java.time.LocalDateTime;
/**
* @author
* @date 2022-09-30 0:49
* @since 1.8
*/
@Component
public class Init implements ApplicationRunner {
/**
* 启动执行
* @param args
* @throws Exception
*/
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("Current Date Time is : " + LocalDateTime.now());
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.demogroupId>
<artifactId>moonartifactId>
<version>V1.0.0version>
<properties>
<maven.compiler.source>8maven.compiler.source>
<maven.compiler.target>8maven.compiler.target>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<other.jar.path>libother.jar.path>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<version>2.7.4version>
dependency>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>31.1-jreversion>
dependency>
dependencies>
<pluginRepositories>
<pluginRepository>
<id>aliyun-pluginid>
<url>https://maven.aliyun.com/nexus/content/groups/public/url>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
<build>
<finalName>my-moonfinalName>
<outputDirectory>D:\outoutputDirectory>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<version>2.7.3version>
<configuration>
<outputDirectory>D:\outoutputDirectory>
configuration>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
<plugin>
<groupId>com.github.shalousungroupId>
<artifactId>smart-doc-maven-pluginartifactId>
<version>2.5.2version>
<configuration>
<configFile>./src/main/resources/doc/smart-doc.jsonconfigFile>
<projectName>moon-apiprojectName>
configuration>
plugin>
plugins>
build>
project>

目录结构

清单信息

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.demogroupId>
<artifactId>moonartifactId>
<version>V1.0.0version>
<properties>
<maven.compiler.source>8maven.compiler.source>
<maven.compiler.target>8maven.compiler.target>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<other.jar.path>libother.jar.path>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<version>2.7.4version>
dependency>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>31.1-jreversion>
dependency>
dependencies>
<pluginRepositories>
<pluginRepository>
<id>aliyun-pluginid>
<url>https://maven.aliyun.com/nexus/content/groups/public/url>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
<build>
<finalName>my-moonfinalName>
<outputDirectory>D:\outoutputDirectory>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<version>2.7.3version>
<configuration>
<outputDirectory>D:\outoutputDirectory>
<fork>truefork>
<layout>ZIPlayout>
<includes>
<include>
<groupId>nothinggroupId>
<artifactId>nothingartifactId>
include>
includes>
configuration>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-dependency-pluginartifactId>
<version>3.3.0version>
<executions>
<execution>
<id>copy-dependenciesid>
<phase>packagephase>
<goals>
<goal>copy-dependenciesgoal>
goals>
<configuration>
<outputDirectory>D:\out\liboutputDirectory>
configuration>
execution>
executions>
plugin>
<plugin>
<groupId>com.github.shalousungroupId>
<artifactId>smart-doc-maven-pluginartifactId>
<version>2.5.2version>
<configuration>
<configFile>./src/main/resources/doc/smart-doc.jsonconfigFile>
<projectName>moon-apiprojectName>
configuration>
plugin>
plugins>
build>
project>
java -Dloader.path=lib/ -jar

目录结构

清单信息

