美文网首页JAVA
扩展开发总结(mvn打包、java -cp 、nohup)

扩展开发总结(mvn打包、java -cp 、nohup)

作者: 垂直居中的句号 | 来源:发表于2023-03-23 16:20 被阅读0次

    1、mvn 打包,将lib、jar、conf分开
    spring-boot-maven-plugin:打包成可执行的文件
    maven-jar-plugin:负责将应用程序打包成可执行的jar文件
    maven-assembly-plugin:负责将整个项目按照自定义的目录结构打成最终的压缩包,方便实际部署
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <excludes>
    <exclude>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    </exclude>
    </excludes>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
    <archive>
    <manifest>
    <addClasspath>true</addClasspath>

    <classpathPrefix>lib/</classpathPrefix>
    <mainClass>com.adtec.rdc.moia.dispatch.DispatchWebSpringBootApplication</mainClass>
    </manifest>
    </archive>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.4.2</version>

    <configuration>
    <descriptors>
    <descriptor>src/main/resources/config/package.xml</descriptor>
    </descriptors>
    </configuration>
    <executions>
    <execution>
    <id>make-assembly</id>
    <phase>package</phase>
    <goals>
    <goal>single</goal>
    </goals>
    </execution>
    </executions>
    </plugin>

            <!-- 打包发布时,跳过单元测试 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
    

    config/package.xml

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    <id>bin</id>
    
    <!-- 打包后的文件格式,可以是zip,tar,tar.gz,tar.bz2,jar,war,dir -->
    <formats>
        <format>dir</format>
    </formats>
    
    <!-- 压缩包下是否生成和项目名相同的根目录 -->
    <includeBaseDirectory>false</includeBaseDirectory>
    
    <dependencySets>
        <dependencySet>
            <!-- 不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录 -->
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>
    
    <fileSets>
        <!-- 说明文件,打包进zip文件的根目录 -->
        <fileSet>
            <directory>${project.basedir}</directory>
            <outputDirectory></outputDirectory>
            <fileMode>0644</fileMode>
            <includes>
                <include>README*</include>
                <include>LICENSE*</include>
                <include>NOTICE*</include>
            </includes>
        </fileSet>
    
        <!-- 配置文件,打包进zip文件的conf目录 -->
        <fileSet>
            <directory>${project.build.directory}/classes</directory>
            <outputDirectory>conf</outputDirectory>
            <fileMode>0644</fileMode>
            <includes>
                <include>*.properties</include>
                <include>*.xml</include>
                <include>*.yml</include>
                <include>change.log</include>
            </includes>
        </fileSet>
    
        <!-- 启动脚本,打包进zip文件的bin目录 -->
        <fileSet>
            <directory>${project.basedir}/bin</directory>
            <outputDirectory>bin</outputDirectory>
            <fileMode>0755</fileMode>
            <includes>
                <include>*.bat</include>
                <include>*.sh</include>
            </includes>
        </fileSet>
    
        <!-- 编译出来的jar文件,打包进zip文件根目录 -->
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
    </fileSets>
    

    </assembly>

    打包结果

    1679645863025.png

    2、java -cp 运行时加载jar包。
    https://blog.51cto.com/u_330478/5020251

    3、nohup

        nohup ${JAVA} ${JAVA_OPT} -cp  $classpath  ${MAIN_CLASS} >start.log 2>&1 &
       nohup ${JAVA} ${JAVA_OPT} -cp  $classpath  ${MAIN_CLASS} >/dev/null 2>nohup.out &

    相关文章

      网友评论

        本文标题:扩展开发总结(mvn打包、java -cp 、nohup)

        本文链接:https://www.haomeiwen.com/subject/caeirdtx.html