欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven打本地可执行jar包

程序员文章站 2022-04-29 16:33:25
...

maven打本地可执行jar包。

将maven项目打成jar包,并且导出Lib,配置不打在jar包中,需要以下步骤:
1. mvn dependency:copy插件导出依赖包到lib。并排除特定data配置文件。
2. maven的resources插件将指定目录copy到jar外的conf。
3. 修改MANIFEST引入class-path和Main运行类。
4. mvn clean install将代码打成jar包。
5. 复制A.jar,lib,conf目录到服务器。
6. 通过nohup java -jar A.jar >nohup.out运行。日志在nohup.out中。

pom.xml配置

<!--在MANIFEST中加载指定的jar文件 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <archive>
            <manifestEntries>
                <Class-Path>.</Class-Path>
            </manifestEntries>
            <manifest>
                <mainClass>com.jdjr.test.container.Main</mainClass>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
        <classesDirectory>
        </classesDirectory>
        <excludes>
            <exclude>jsfresult/</exclude>
        </excludes>
    </configuration>
</plugin>
<!-- 项目中依赖包打包后的目录 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>./target/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>
<!--复制指定配置到jar外的conf目录-->
<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/conf/jsfresult</outputDirectory>
                <resources>
                    <resource>
                        <directory>src/main/resources/jsfresult</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>

        </execution>
    </executions>
</plugin>