maven如何打包你会吗?

这篇具有很好参考价值的文章主要介绍了maven如何打包你会吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.新建一个maven项目,在main/java中建立Main类

maven如何打包你会吗?,maven,java,idea

maven如何打包你会吗?,maven,java,idea


public class Main {
    public static void main(String[] args) {
        
        System.out.println("hello java ...");
    }
}

 2.添加依赖,使其成为可执行包

maven如何打包你会吗?,maven,java,idea

 <build>
        <plugins>
            <!--打包成为可执行包-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>cn.scl.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

maven如何打包你会吗?,maven,java,idea

 3.打包运行

maven如何打包你会吗?,maven,java,idea

 maven如何打包你会吗?,maven,java,idea

 maven如何打包你会吗?,maven,java,idea

maven如何打包你会吗?,maven,java,idea

 假如我加入其它架包了 ,又该如何打包,才能运行?

maven如何打包你会吗?,maven,java,idea

 <!--自己加入的架包-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.16.1</version>
        </dependency>
    </dependencies>

有小伙伴就说了,我依旧像前边的那种方式来打包(结果肯定是不行的)。。。

那你只需加入下边这些代码,就可以了:

maven如何打包你会吗?,maven,java,idea

 <plugin>
                <!--可将其他插件也加入打包,会生成lib目录-->
                <!-- maven-dependency-plugin -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.6.0</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

 代码都加完了主程序不得改进以下啊。。。


public class Main {
    public static void main(String[] args) {
        try {
            System.out.println(Jsoup.connect("http://www.baidu.com").get().title());
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("hello java ...");
    }
}

现在你再试一下打包。。。

细心的小伙伴就发现了,这里多了一个lib目录。。

maven如何打包你会吗?,maven,java,idea

maven如何打包你会吗?,maven,java,idea

 那就有小伙伴有疑问了,我不想要lib目录行不行:答案是当然可以

那你只需要修改一点代码就行:(将上边我们写的哪些代码注释掉,换上新的插件即可

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>cn.scl.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--            <plugin>-->
            <!--                &lt;!&ndash;可将其他插件也加入打包,会生成lib目录&ndash;&gt;-->
            <!--                &lt;!&ndash; maven-dependency-plugin &ndash;&gt;-->
            <!--                <groupId>org.apache.maven.plugins</groupId>-->
            <!--                <artifactId>maven-dependency-plugin</artifactId>-->
            <!--                <version>3.6.0</version>-->
            <!--                <executions>-->
            <!--                    <execution>-->
            <!--                        <id>copy-dependencies</id>-->
            <!--                        <phase>package</phase>-->
            <!--                        <goals>-->
            <!--                            <goal>copy-dependencies</goal>-->
            <!--                        </goals>-->
            <!--                        <configuration>-->
            <!--                            <outputDirectory>${project.build.directory}/lib</outputDirectory>-->
            <!--                        </configuration>-->
            <!--                    </execution>-->
            <!--                </executions>-->
            <!--            </plugin>-->
            <!--            &lt;!&ndash;打包成为可执行包&ndash;&gt;-->
            <!--            <plugin>-->
            <!--                <groupId>org.apache.maven.plugins</groupId>-->
            <!--                <artifactId>maven-jar-plugin</artifactId>-->
            <!--                <version>3.3.0</version>-->
            <!--                <configuration>-->
            <!--                    <archive>-->
            <!--                        <manifest>-->
            <!--                            <addClasspath>true</addClasspath>-->
            <!--                            <classpathPrefix>lib/</classpathPrefix>-->
            <!--                            <mainClass>cn.scl.Main</mainClass>-->
            <!--                        </manifest>-->
            <!--                    </archive>-->
            <!--                </configuration>-->
            <!--            </plugin>-->
        </plugins>
    </build>

你再打包你会发现。。。lib目录消失了新增了一个jar文件。我们实验一下:输入cmd....

maven如何打包你会吗?,maven,java,idea

 maven如何打包你会吗?,maven,java,idea

 到这里就结束了,maven的实用打包方式就讲解完了。。。

完整程序:xml文件

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>m12</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <!--自己加入的架包-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.16.1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>cn.scl.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--            <plugin>-->
            <!--                &lt;!&ndash;可将其他插件也加入打包,会生成lib目录&ndash;&gt;-->
            <!--                &lt;!&ndash; maven-dependency-plugin &ndash;&gt;-->
            <!--                <groupId>org.apache.maven.plugins</groupId>-->
            <!--                <artifactId>maven-dependency-plugin</artifactId>-->
            <!--                <version>3.6.0</version>-->
            <!--                <executions>-->
            <!--                    <execution>-->
            <!--                        <id>copy-dependencies</id>-->
            <!--                        <phase>package</phase>-->
            <!--                        <goals>-->
            <!--                            <goal>copy-dependencies</goal>-->
            <!--                        </goals>-->
            <!--                        <configuration>-->
            <!--                            <outputDirectory>${project.build.directory}/lib</outputDirectory>-->
            <!--                        </configuration>-->
            <!--                    </execution>-->
            <!--                </executions>-->
            <!--            </plugin>-->
            <!--            &lt;!&ndash;打包成为可执行包&ndash;&gt;-->
            <!--            <plugin>-->
            <!--                <groupId>org.apache.maven.plugins</groupId>-->
            <!--                <artifactId>maven-jar-plugin</artifactId>-->
            <!--                <version>3.3.0</version>-->
            <!--                <configuration>-->
            <!--                    <archive>-->
            <!--                        <manifest>-->
            <!--                            <addClasspath>true</addClasspath>-->
            <!--                            <classpathPrefix>lib/</classpathPrefix>-->
            <!--                            <mainClass>cn.scl.Main</mainClass>-->
            <!--                        </manifest>-->
            <!--                    </archive>-->
            <!--                </configuration>-->
            <!--            </plugin>-->
        </plugins>
    </build>

</project>

Java文件:文章来源地址https://www.toymoban.com/news/detail-622850.html

/*
 * Copyright (c) 2020, 2023,  All rights reserved.
 *
 */
package cn.scl;

import org.jsoup.Jsoup;

/**
 * <p>Project: m12 - Main</p>
 * <p>Powered by scl On 2023-08-01 20:21:29</p>
 * <p>描述:<p>
 *
 * @author scl [1846080280@qq.com]
 * @version 1.0
 * @since 17
 */
public class Main {
    public static void main(String[] args) {
        try {
            System.out.println(Jsoup.connect("http://www.baidu.com").get().title());
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("hello java ...");
    }
}

到了这里,关于maven如何打包你会吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 Hasura 和 PostgreSQL 构建后端技巧你会吗

    后端开发通常需要编写多行代码来处理 CRUD、授权和业务逻辑。所有这些代码都需要在项目的整个生命周期内进行测试、调试和维护。这需要开发人员可以用来开发新功能的大量时间。在本文中,您将了解 Hasura 和 PostgreSQL 如何帮助您加快应用程序开发并以最少的工作快速启动

    2024年02月05日
    浏览(28)
  • 手机没电用日语怎么说?你会吗?柯桥常用日语学习

    手机没电在日语里可以表达为: 1. スマホの電池が切れた。 直接使用“電池が切れる”来表示电池没有电了。 2. スマホのバッテリーが空に15857575376なった。 “バッテリーが空になる”也是表示电量耗尽的常用表达。 3. 充電が必要だ。 “充電が必要”意思是需要充电。 4.

    2024年02月06日
    浏览(29)
  • 序员工作1年,每天上班清闲,但却焦虑万分,若是你,你会吗?

    有个学弟在后台留言 他谈到了自己去年毕业的 因为在大学里边有一些校企合作 所以呢他也是花了钱 然后去培训了有半年 去年毕业之后到现在工作有一年了 那目前的薪资是8,000块钱 虽然说相较于其他同学呢 这个薪资呢还算可以 但是呢 自己每天现在就处于一种非常 压抑的那

    2024年02月02日
    浏览(29)
  • 解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性

    IDEA执行 mvn clean package -DskipTest=true 命令或者借助工具的 Maven菜单 进行打包操作,然后执行 java -jar app.jar 命令后,提示jar中没有主清单属性 这个错误通常是由于生成的JAR文件缺少一个主清单属性引起的。在使用 java -jar 命令运行JAR文件时,JVM需要查找JAR文件中包含 Main-Class 属

    2024年02月05日
    浏览(46)
  • IDEA中Maven项目打包方式

    方式一: 直接打包,不打包依赖包,仅打包出项目中的代码到JAR包中,可称为架包。在其他应用中运行时,必须保证其上面有相应的依赖包,才能运行。 maven——》Lifecyle——》Clean——》Package 打包成功后就会出现target文件夹 方式二: 打包两个jar包: 一个是架包(只包含程

    2024年02月16日
    浏览(33)
  • 【IDEA】Maven项目打包 无效的目标发行版: 17 (全)

    问题 解决方法 项目运行出错 Maven打包出错 问题: 曾经切换过jdk版本,切回17时,出现的了如题的错误。 且运行不报错,但maven进行打包时报错。其他版本同理。 解决方法: 1. 项目运行出错 pom.xml可能出现问题: 检查setting中的编译器设置: project structure中的项目、模块及

    2024年02月16日
    浏览(44)
  • Idea 2023.2 maven 打包时提示 waring 问题解决

    idea 2023.2 使用 Maven 打包 ,控制台输出 Waring 信息 根本原来在于所使用的 Maven 版本 idea 2023.2 内置的 Maven 版本为 3.9.2,这个警告好像是Maven 4不支持的的 Plugin的警告。 具体的可以看下stackoverflow 这个连接 stackoverflow Maven 3.9.2 发版说明 降低Maven 版本号 下载 Maven3.8.8 https://dlcdn.a

    2024年02月15日
    浏览(30)
  • 使用IDEA和Maven打包Jar包的详细方法

    使用IDEA和Maven打包Jar包的详细方法 在大数据开发中,使用IDEA和Maven进行项目管理和打包是常见的做法。本文将详细介绍如何使用IDEA和Maven打包Jar包,并提供相应的源代码。 步骤1:创建Maven项目 首先,我们需要在IDEA中创建一个Maven项目。在IDEA的欢迎界面中,点击\\\"Create New Pr

    2024年02月06日
    浏览(38)
  • Idea使用Docker插件实现maven打包自动构建镜像

    Docker 开启TCP 服务 改写以下内容 重启服务 此时docker已经开放了2375端口,使用外部主机访问 http://docker:2375/info IDEA 集成Docker 安装Docker 插件 配置docker服务地址 点击view-services,打开docker的操作面板 双击docker01可以看到此docker服务下镜像和容器 右击docker镜像,可以创建新的容器,

    2024年02月10日
    浏览(38)
  • 若依框架(前后端分离) 之IDEA中Maven后端打包

    Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的(

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包