Maven Assembly Plugin

IDEA中package不能引入依赖的解决方法

∥☆過路亽.° 提交于 2020-03-02 18:17:40
在IDEA中, 使用 maven 打包。出现了 package 后没有将需要的依赖放入包中, 运行会抛出 java.lang.NoClassDefFoundError 的异常。 解决办法 在 pom.xml 中加入: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <mainClass>com.xxg.Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies<

Maven生成可以直接执行的jar包

試著忘記壹切 提交于 2019-12-25 18:13:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里; 2、要能加载到依赖包。 打包命令 mvn package 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.xxx.Main</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven

maven-assembly-plugin插件的使用方法

末鹿安然 提交于 2019-12-05 05:01:09
一. Assembly 是什么意思? 二. maven-assembly-plugin是什么? 1 它是maven中针对打包任务而提供的标准插件。 三. maven-assembly-plugin插件的作用?    摘自官网: http://maven.apache.org/plugins/maven-assembly-plugin/    英文原文: The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its dependencies,    modules, site documentation, and other files into a single distributable archive.    中文翻译: Assembly 插件的主要作用是,允许用户将项目输出与它的依赖项、模块、站点文档、和其他文件一起组装成一个可分发的归档文件。         (翻译不一定准确,以英文为准) 四.maven-assembly-plugin插件在maven项目中如何使用(即使用步骤)?   1. 需要指定一个Assembly描述符文件。该文件指定了打包格式,包含的文件/过滤的文件等信息,可以同时指定多个描述符文件

【maven系列】maven可执行jar打包

眉间皱痕 提交于 2019-12-05 00:59:47
最近因项目需要,需要将项目打成jar包运行,项目为普通jar包,在pom配置如下: 第一种: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <!-- 指定main方法所在类 --> <mainClass>com.xxx.Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> 打包完成后,会将所有依赖的jar包打成一个jar文件,命令行使用 java -jar xxx.jar 运行。不过

Maven微服务(多模块)打jar包之maven-assembly-plugin配置详解(二)

你离开我真会死。 提交于 2019-12-03 23:20:58
一、maven-assembly-plugin插件介绍 Assembly 插件的主要作用是,允许用户将项目输出与它的依赖项、模块、站点文档、和其他文件一起组装成一个可分发的归档文件,简单的说,就是自定义打包的工具,有自己的配置文件(Assembly描述符文件)。微服务使用这个插件的概率比较高,平时普通的项目不需要这样的实现方式。 使用此插件有两个步骤: 第1步骤:pom.xml文件里配置maven-assembly-plugin,指定描述文件 第2步骤:引入Assembly描述符文件。配置Assembly描述符文件信息,如下: ?xml version="1.0" encoding="utf-8"?> <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 标识符

SpringBoot迭代发布JAR瘦身配置(续:将lib文件夹压缩打包)

江枫思渺然 提交于 2019-12-02 22:12:19
上次写了篇 《 SpringBoot迭代发布JAR瘦身配置 》, 但有一个问题,所有的第三方JAR位于lib目录中,不利于传输到服务器,因此应该考虑将此目录压缩打包,再传输到服务器,服务器解压即可使用。 经过一番google,找到类似的plugin( maven-assembly-plugin ),看官网的介绍: The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its dependencies, modules, site documentation, and other files into a single distributable archive. 大致意思就是:Assembly Plugin 主要是为了允许用户将项目输出及其依赖项、模块、文档和其他文件聚合到一个可发布的文件中。通俗一点就是可以定制化自己想要打包的文件,支持打包的格式有:zip、tar、tar.gz (or tgz)、tar.bz2 (or tbz2)、tar.snappy、tar.xz (or txz)、jar、dir、war。 接下来我就根据自己的需求定制我想要的包,我想把 target/lib 目录压缩打包, 在pom的配置如下:

[Spring4.x]基于spring4.x纯注解的非Web工程搭建

亡梦爱人 提交于 2019-11-29 14:59:41
Spring框架一直以来是Java开发中的耀眼明星,其IOC/AOP可以大大降低代码的耦合度,但低版本中的xml配置繁杂也让很多人诟病; Spring4.x以上已经提倡基于注解的开发模式,在非Web项目中,"基于spring纯注解方式如何开发?"就是本文要说明的内容,且看下文: 下面基于Eclipse Oxygen版本,开发一个普通的Java工程,演示如下: 1. 基于 maven-archetype-quickstart 骨架 创建一个普通的Maven工程: 2. 在pom.xml中加入spring、logback及常用jar包的依赖: 3. 在src/main/resources下创建 application.properties、logback.xml、assembly.xml 等配置文件 4. 在Java 代码中创建 @Configuration、@PropertySource 类用于加载配置 package com.morpheus.cmdline.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.context

Spring Boot 打包,分离依赖jar,配置文件

…衆ロ難τιáo~ 提交于 2019-11-26 20:00:04
maven-jar-plugin,负责将应用程序打包成可执行的jar文件 maven-assembly-plugin,负责将整个项目按照自定义的目录结构打成最终的压缩包,方便实际部署 需求1,将依赖的jar提取到可运行的jar文件之外,我们使用maven-jar-plugin来实现 最终的可运行文件jar文件并不包含依赖的jar包,所有依赖的jar包都放在和ps.jar平行的lib文件夹内,这样如果以后想快速部署,就不用每一次都把体积很大的lib包都要传一遍,除非依赖包有所变化。这里的maven-jar-plugin的配置文件如下 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <!-- 添加index则不从mainfest中读取classpath,而是从Index.list中读取 --> <!-- <index>true</index> --> <manifest> <mainClass>com.vmpay.pay.App</mainClass> <!-- to create a class path to your dependecies

浅谈 java 中构建可执行 jar 包的几种方式

一个人想着一个人 提交于 2019-11-26 19:59:51
有时候,由于项目的需要,我们会将源码编译后以工具包(class打成jar包)的形式对外提供,此时, 你的 jar 包不一定要是可执行的,只要能通过编译,能被别人以 import 的方式调用就行了。但还有的 情况是,我们的 jar 包是要可执行的,即能直接在 cmd 下直接运行。前者的打包很简单,在 eclipse 中, 直接选中要打包的 java 文件和其它资源、依赖文件, export → Java → JAR file 即可。需要注意的是, 这种方式导出的 jar 包是不可执行的,比如你执行如下的语句: java -jar test.jar java -classpath test.jar com.test_maven.App 会直接报错:无法找到主类或者找不到 xxx 依赖包/类,这是由于你没有定义 MANIFEST.MF 资源描述文件所致, 或者你直接把依赖的 jar 包打进了你最终的 jar,而这种嵌套的依赖 jar 包是不能直接被程序 import 识别的。 下面我们看看如何在 eclipse 中构建一个可执行的 jar 包。 (1)最简单的还是依赖于 eclipse 的导出功能 : export → java → Runnable JAR file,这种形式的导出 可以通过 lanuch configuration 指定一个 MainClass,并会自动生成