• Maven Plugins And SpringBoot Package (二)


    一 Maven Pom 配置

    1.Pom参数

    Maven Pom 参数配置官网说明

    在这里插入图片描述

    2.常用配置

    参数含义
    modelVersionPom模板 版本信息(保证Pom可正常解析)
    groupId唯一标识
    artifactId唯一标识
    version版本
    packaging包类型
    description描述信息
    dependencyManagement依赖管理
    name项目名称
    repository远程仓库
    pluginRepository插件仓库
    build构建配置
    outputDirectoryclass 输出位置
    resource资源
    plugin插件

    更多详细的配置使用可直接参考官网的参数说明

    3.扩展

    1.产品标识

    ## 产品唯一标识
    org.sun.moon
    moon-rabbit
    1.0.0
    
    groupIdartifactIdversion
    域名.公司名.项目名项目名-模块名版本

    一般来说,groupId 格式:
    在这里插入图片描述

    2.父依赖

    ## 指定父依赖
    
    

    在这里插入图片描述

    二 Maven Jar 编译配置

    1.maven-jar-plugin

    1.工程

    在这里插入图片描述

    2.配置

    依赖和包分离

    
    <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>
    

    在这里插入图片描述

    3.编译

    在这里插入图片描述

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

    在这里插入图片描述

    4.运行

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

    在这里插入图片描述

    运行 class 文件,注意点

    错误: 找不到或无法加载主类 com.demo.moon.Rabbit

    Java 命令执行 Class 文件 遵循以下原则
    1.根据 Classpath 指定的位置来查找; Class 要包含当前目录,检查环境变量是否包含中括号内的信息 [.;]
    2.以当前用户路径为基础,根据包路经去搜索 Class 文件,即在当前执行 Java 命令的目录,依次新建包路经并将Class文件放于最里层,才可以执行

    在这里插入图片描述

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

    在这里插入图片描述

    执行

    在这里插入图片描述

    2.maven-assembly-plugin

    1.配置

    
    <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>
    

    2.编译

    在这里插入图片描述

    3.执行

    在这里插入图片描述

    4.包结构

    在这里插入图片描述
    清单文件

    在这里插入图片描述

    三 Maven SpringBoot 编译配置

    1.修改项目结构

    项目结构

    在这里插入图片描述

    启动类

    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());
        }
    }
    
    

    2.配置

    
    <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>
    

    3.编译和运行

    在这里插入图片描述

    4.清单

    目录结构
    在这里插入图片描述
    清单信息
    在这里插入图片描述

    5.依赖外置

    
    <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>
    

    6.编译和运行

    java -Dloader.path=lib/ -jar

    在这里插入图片描述

    7.清单

    目录结构
    在这里插入图片描述

    清单信息
    在这里插入图片描述

    四 包配置和本地仓库存储位置关系

    在这里插入图片描述

  • 相关阅读:
    ue5蓝图请求接口
    rman管理删除oracle数据库日志
    千万别再瞎学Python了,过来人的一些学习经验,能让你少走弯路
    Docker ENV 与 ARG 详解
    英语写作中“建立”、“构造”build、construct、establish、set up的用法
    MBD工具链的云部署
    【矩阵论】3. 矩阵运算与函数——张量积
    多题库查题、独立后台、响应速度快、全网平台可查、功能最全!
    vue elementui 组合式 api 对于容器的滑动条的位置的获取与设置。切换页面可以保持原来的容器里的滑动条位置不变
    DataOps:深刻影响现代数据栈发展
  • 原文地址:https://blog.csdn.net/weixin_42176639/article/details/127114632