[java]32、项目打包

2022-03-31  本文已影响0人  史记_d5da

1、普通Java项目打包

1、创建一个普通的java项目

java项目
2、添加Artificats
Artificats
3、选择Module和对应的Main class
Create Jar
4、配置完成之后在MANIFEST.MF文件中显示相关配置 Main-Class: com.sj.Main
MANIFEST.MF
5、Build完成后生成testJava_10.jar
6、在终端cd到当前文件夹路径,执行命令java -jar testJava_10.jar,控制台输入相应的结果 。

2、Maven项目中打包

2.1、maven-jar-plugin

1、在Maven项目中添加Main

public class Main {
    public static void main(String[] args) {
        System.out.println(1);
        System.out.println(DruidDataSourceFactory.class);
        System.out.println(2);
    }
}

2、在pom.xml中配置以下内容

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <!--                            依赖的文件内容在lib文件夹下面-->
                        <classpathPrefix>lib</classpathPrefix>
                        <!--                            打包的住入口函数-->
                        <mainClass>com.sj.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.2</version>
            <executions>
                <execution>
                    <goals>
                        <!--                            拷贝依赖-->
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!--                            将jar依赖包拷贝到lib文件夹下面-->
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3、双击Maven属性栏下的package命令,打包生成HelloJava_09-1.0.0.jar,以及依赖文件夹lib

HelloJava_09-1.0.0.jar
4、cd到当前目录下输入命令:java -jar HelloJava_09-1.0.0.jar,控制台打印输出
1
class com.alibaba.druid.pool.DruidDataSourceFactory
2
2.2、maven-assembly-plugin

1、在pom.xml中配置以下内容。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.sj.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <!--                        将依赖塞入jar包中-->
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <finalName>helloJava</finalName>
                <!--                    false 不会将helloJava拼接在后面-->
                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、双击Maven属性栏下的clean命令,然后在双击package命令,打包生成helloJava.jar包。

helloJava.jar
3、cd到当前目录下输入命令:java -jar helloJava.jar,控制台成功打印输出。
2.3、maven-shade-plugin

1、pom.xml文件内容

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <shadedArtifactAttached>true</shadedArtifactAttached>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.sj.Main</mainClass>
                            </transformer>
                        </transformers>
                        <finalName>HelloJar</finalName>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、先双击clean,后双击package,打包生成helloJar.jar包。
3、cd到当前目录下输入命令:java -jar helloJavr.jar,控制台成功打印输出。

2.4、spring-boot-maven-plugin

1、pom.xml文件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.3.0.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <mainClass>com.sj.Main</mainClass>
                        <finalName>HelloSpring</finalName>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、先双击clean,后双击package,打包生成helloSpring.jar包。
3、cd到当前目录下输入命令:java -jar helloSpring.jar,控制台成功打印输出。


2.5、安装本地jar包到Maven的本地仓库

通过以上后三种方式打出jar包,所有的依赖都是通过Maven的远程参考下载,如果有本地lib文件的依赖则打包失败,需要先将jar包安装到本地仓库。

mvn install:install-file -Dfile=jar的路径 -DgroupId=组织 -DartificatId=库名 -Dversion=版本 -Dpackaging=jar
上一篇 下一篇

猜你喜欢

热点阅读