Maven Assembly Plugin

maven 纯java工程 打包可执行

ⅰ亾dé卋堺 提交于 2021-01-15 15:36:25
<build> <finalName>webservice</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <archive> <manifest> <mainClass>xx.AppRun</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> <classesDirectory> </classesDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <manifest> <mainClass>xx.AppRun</mainClass> <addClasspath>true

java,maven工程打tar.gz包执行main方法

允我心安 提交于 2020-12-18 06:43:51
一、需要在pom.xml文件添加plugin 项目目录结构 pom.xml 1 <build> 2 <plugins> 3 4 <plugin> 5 <artifactId>maven-assembly-plugin</artifactId> 6 <version>2.6</version> 7 <configuration> 8 <!--G:\IdeaWorkspace\sic_platform\probe\chromProbe\src\assembly\assembly.xml--> 9 <!--描述文件路径--> 10 <descriptor>src/assembly/assembly.xml</descriptor> 11 <!-- 生成的tar.gz文件的名字,如果没有设置就默认用pom文件里的artifactId+version--> 12 <finalName>${project.name}-${project.version}</finalName> 13 <!--属性控制是否在生成的打包文件的文件名中包含assembly id--> 14 <appendAssemblyId>false</appendAssemblyId> 15 </configuration> 16 <executions> 17 <execution> 18 <id>make-assembly

携程Apollo一键打包/部署方案

廉价感情. 提交于 2020-08-19 20:45:42
Apollo-docker 携程Apollo 一键打包/部署方案。 几乎不需要修改任何Apollo源码或配置,实现快速开发/测试环境搭建。 基于 Apollo 1.6.1 支持 Windows , Linux 1、下载源码 Apollo git clone https://gitee.com/nobodyiam/apollo.git 编译脚本 git clone https://gitee.com/ellipse/apollo-docker.git 项目目录结构: apollo-docker/ -- apollo/ <--预编译版 -- admin/ -- config/ -- portal/ -- apollo.env -- docker-compose.yml -- build/ <--编译脚本 -- gulpfile.js -- ... 2、环境准备 JDK 必不可少 Maven Apollo项目使用 Maven 构建。如果没安装maven,会调用 apollo 项目根目录下的 mvnw (会自动下载maven),但由于网络原因导致命令卡住。建议手动安装 maven 并配置环境变量,同时建议将仓库修改为国内仓库。 Node.js 脚本使用 Gulp 编写,需要 Node.js Docker 测试服务器需要安装 Docker 和 Docker compose 3、兼容性检查

使用Maven的assembly插件实现自定义打包

北城以北 提交于 2020-08-14 12:29:29
一、背景   最近我们项目越来越多了,然后我就在想如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成,通过研究,我们通过使用maven的assembly插件完美的实现了该需求,爽爆了有木有。本文分享该插件的配置以及微服务的统一打包方式。 二、配置步骤及其他事项 1.首先我们需要在pom.xml中配置maven的assembly插件 1 < build > 2 < plugins > 3 < plugin > 4 < groupId > org.apache.maven.plugins </ groupId > 5 < artifactId > maven-jar-plugin </ artifactId > 6 < version > 2.3.1 </ version > 7 < configuration > 8 < archive > 9 < manifest > 10 <!-- 运行jar包时运行的主类,要求类全名 --> 11 < mainClass > com.hafiz.Runner </ mainClass > 12 <!-- 是否指定项目classpath下的依赖 --> 13 < addClasspath > true </ addClasspath > 14 <!-- 指定依赖的时候声明前缀 --> 15 < classpathPrefix

面试问题---JAVA程序CPU占用过高怎么定位

寵の児 提交于 2020-08-13 13:02:17
今天一个电话面试问了这个问题。回来查了下答案,自己也顺带操作一遍,做个记录。之前只知道jstack工具可以查看线程状态这些。比如死锁这些,主要是之前不知道 top -H -p pid 这个命令的使用,这命令可以看到进程下面线程信息,拿到线程ID,然后再结合jstack命令使用就可以解决这个问题了。下面记录一下具体的操作步骤: 1.打个jar包丢到机器上运行 package com.nijunyang.test; public class TestApplication { public static void main(String[] args) { for ( int i = 0; i < 50; i++ ) { new Thread(()-> test()).start(); } } public static void test() { while ( true ) { int a = 1 + 6 ; System.out.println(a); } } } 使用这个maven插件 打包jar < plugin > < groupId > org.apache.maven.plugins </ groupId > < artifactId > maven-assembly-plugin </ artifactId > < configuration > < archive

maven构建工具jar包,第三方包未下载下来,类找不到问题

こ雲淡風輕ζ 提交于 2020-08-10 18:18:37
给同事提供一个sdk时,发现mvn install 构建的jar第三方包未下载下来,导致引入后找不到类; 解决方案: 1. 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.tang.CSVUtils</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef> jar-with-dependencies </descriptorRef> </descriptorRefs> </configuration> <!-- 加上下面这一段,使用 mvn package命令,不加则使用mvn assembly--> <!-- <executions> <execution> <id>make-assemble</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> --> </plugin> </plugins

你确定 Maven 相关的东西全部了解吗

戏子无情 提交于 2020-08-09 21:42:10
前言 如果你对 Maven 的了解只停留在怎么添加依赖包,你真的需要看接下来的内容。 <dependencies> <!-- https://mvnrepository.com/artifact/org.openjdk.jol/jol-core --> <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.10</version> </dependency> </dependencies> maven 包的依赖关系、依赖传递及依赖传递遵循的规则 依赖包的作用域 怎么解决 jar 包冲突 项目继承和聚合 maven 生命周期 maven 插件使用及常用命令 maven 私服的使用 怎么发布 jar maven 定义不同的配置环境 maven-assembly-plugin 打包 Maven 目前 java 项目流行的项目管理工具 Maven 和 Gradle 。目前使用率来说, Maven 使用占比是高于 Gradle 的。纠结选哪个管理工具的时候就用 Maven 就行。 在 Maven 中通过 POM-Project Object Model 项目对象模型的概念来管理项目。在 Maven 中每个项目都相当于一个对象,对象(项目)之间可以依赖、继承、聚合

Maven快照版本要这样用才真的香!

风格不统一 提交于 2020-08-08 01:26:39
Bug的身世之谜 今天又分享一个问题解决的故事。请看下图框起来的错误,明显就是找不到这个class嘛! 图片 下面我们按照正常人的思路去排查这个问题,既然找不到class那就先看这个依赖的jar包有没有,如果没有那就是铁证如山。 但是事与愿违啊,编译后的lib目录下真的有这个包order-api-2.0-SNAPSHOT.jar 还是不相信,于是将order-api-2.0-SNAPSHOT.jar解压了,看看里面到底有没有我们需要的class,真的有,此处心情沉重。 一般人到这里就会懵圈了,但我还年轻啊,脑袋还够用。接下来看看classpath的配置有没有问题,如果order-api-2.0-SNAPSHOT.jar不在classpath中,那么自然就是找不到class啊,机智的我。 于是查看了META-INF/MANIFEST.MF文件,发现里面依赖的是order-api-2.0-20200225.024541-15.jar, 什么情况,还加上时间戳了。 终于真相大白了,classpath中指向的是order-api-2.0-20200225.024541-15.jar, 但lib中只有 order-api-2.0-SNAPSHOT.jar。 所以找不到class是没有错的。 打包配置信息 Maven deploy的时候会自动给快照版本加时间戳,从下图可以看的出来: 图片

Spring Boot 项目打包 + Shell 脚本部署实践,太有用了!

落爺英雄遲暮 提交于 2020-08-05 19:42:54
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境的配置 通常一套程序分为了很多个部署环境:开发,测试,uat,线上 等,我们要想对这些环境区分配置文件,可以通过两种方式: 通过application.yml中编码指定 profile.active=uat 方式指定 通过mvn中profiles来区分不同环境对应的配置文件夹,人工可以手动在idea勾选生成不同环境的包(推荐) 这里我们要讲的是第二种,首先在mvn中配置如下内容: <profiles> <profile> <id>node</id> <properties> <!--传递给脚本的参数值--> <activeProfile>node</activeProfile> <package-name>${scripts_packageName}</package-name> <boot-main>${scripts

maven 常用命令

此生再无相见时 提交于 2020-05-04 10:51:27
mvn clean //清除目标目录中的生成结果 mvn compile //编译源代码 mvn test //运行应用程序中的单元测试 mvn package //依据项目生成 jar 文件 mvn install //在本地 Repository 中安装 jar 找出该项目所依赖的项目(jar)列表: mvn dependency:resolve 找出项目非直接依赖: mvn dependency:analyze 在 Jetty Servlet 容器中启动你的 web 应用: mvn jetty:run -Djetty.port=8080 跳过单元测试 mvn test -Dmaven.test.failure.ignore=true maven打包跳过测试 mvn package -Dmaven.test.skip=true 跳过整个测试 mvn install -Dmaven.test.skip=true 修改版本号命令 mvn -DnewVersion=1.0.0 -DgenerateBackupPoms=false versions:set 安装本地jar到本地仓库 mvn install:install-file -DgroupId=XXX -DartifactId=XXX -Dversion=0.1.0 -Dpackaging=jar -Dfile=d: