assembly插件的使用

1、在项目的pom文件中引入

<profiles>
		<profile>
			<id>release</id>
			<activation>
				<property>
					<name>env</name>
					<value>release</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-assembly-plugin</artifactId>
						<executions>
							<execution>
								<id>linux64</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>src/main/assembly/release-linux64.xml</descriptor>
									</descriptors>
									<finalName>${project.artifactId}</finalName>
									<outputDirectory>${project.parent.build.directory}</outputDirectory>
								</configuration>
							</execution>

							<execution>
								<id>linux32</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>src/main/assembly/release-linux32.xml</descriptor>
									</descriptors>
									<finalName>${project.artifactId}</finalName>
									<outputDirectory>${project.parent.build.directory}</outputDirectory>
								</configuration>
							</execution>
							<execution>
								<id>win64</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>src/main/assembly/release-win64.xml</descriptor>
									</descriptors>
									<finalName>${project.artifactId}</finalName>
									<outputDirectory>${project.parent.build.directory}</outputDirectory>
								</configuration>
							</execution>

							<execution>
								<id>win32</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>src/main/assembly/release-win32.xml</descriptor>
									</descriptors>
									<finalName>${project.artifactId}</finalName>
									<outputDirectory>${project.parent.build.directory}</outputDirectory>
								</configuration>
							</execution>

						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

下面以 <id>linux64</id>的打包为例,展开讲解,linux32,win64,win32的类似

src/main/assembly/release-linux64.xml文件内容如下:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
	<id>linux64</id>
	<formats>
		<format>tar.gz</format>
	</formats>
	<includeBaseDirectory>true</includeBaseDirectory>
	<componentDescriptors>
		<componentDescriptor>src/main/assembly/component-linux64.xml</componentDescriptor>
	</componentDescriptors>
</assembly>

src/main/assembly/component-linux64.xml文件内容如下:

<component>
	<fileSets>
		<fileSet>
			<directory>.</directory>
			<outputDirectory>/</outputDirectory>
			<includes>
				<include>README*</include>
			</includes>
		</fileSet>
		<fileSet>
			<directory>./linux64/bin</directory>
			<outputDirectory>bin</outputDirectory>
			<includes>
				<include>**/*</include>
			</includes>
			<fileMode>0755</fileMode>
		</fileSet>
		<fileSet>
			<directory>target</directory>
			<outputDirectory>logs</outputDirectory>
			<excludes>
				<exclude>**/*</exclude>
			</excludes>
		</fileSet>
		<fileSet>
			<directory>./linux64/include</directory>
			<outputDirectory>include</outputDirectory>
			<includes>
				<include>**/*</include>
			</includes>
		</fileSet>
		<fileSet>
			<directory>./linux64/jdk</directory>
			<outputDirectory>jdk</outputDirectory>
			<includes>
				<include>**/*</include>
			</includes>
		</fileSet>
	</fileSets>
	<files>
	<!--
		<file>
			<source>../client-core/src/main/resources/logback.xml</source>
			<outputDirectory>conf</outputDirectory>
		</file>

		-->

		<file>
			<source>./target/client-deployer-0.0.1-SNAPSHOT.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>

		<file>
			<source>./lib/logback-access-0.9.28.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>

		<file>
			<source>./lib/logback-classic-0.9.28.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>

		<file>
			<source>./lib/logback-core-0.9.28.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>

		<file>
			<source>./lib/slf4j-api-1.7.2.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>

		<file>
			<source>./lib/fastjson-1.1.35.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>

		<file>
			<source>./lib/commons-exec-1.3.jar</source>
			<outputDirectory>include</outputDirectory>
		</file>
		<file>
			<source>./src/main/resources/version.properties</source>
			<outputDirectory>conf</outputDirectory>
		</file>
		<file>
			<source>./src/main/resources/wrapper.conf</source>
			<outputDirectory>conf</outputDirectory>
		</file>

		<file>
			<source>./src/main/resources/logback.xml</source>
			<outputDirectory>conf</outputDirectory>
		</file>
		<file>
			<source>../core/src/main/resources/client.properties</source>
			<outputDirectory>conf</outputDirectory>
		</file>
	</files>
	<dependencySets>
		<dependencySet>
			<outputDirectory>lib</outputDirectory>
			<excludes>
				<exclude>junit:junit</exclude>
				<exclude>org.jtester:jtester</exclude>
				<exclude>com.cninfo:client-deployer</exclude>

			</excludes>
		</dependencySet>
	</dependencySets>
</component>
时间: 2024-10-13 16:18:33

assembly插件的使用的相关文章

Maven 的assembly插件使用

Maven 的assembly插件使用: 最近在做一个小工程,利用java启动运行. 为了简单方便使用运行,利用maven的assembly将需要使用的jar都打包到一个jar中.这样无论拷贝到哪里,只有运行就可以,不用需要任何配置. 配置时指定mainClass,运行java的main函数时则可以不用指定包含main函数的类路径名.如运行下面的jar文件则非常简单方便(后台运行):nohup java -jar CalculateScore.jar & 第一步:需要在pom的xml中配置如下内

Java技术--maven的assembly插件打包(依赖包归档)

注:最近工作中遇到的一个问题,写了一个日志处理的模块,现在需要给第三方客户使用,但是该模块依赖了我们自己写的或者修改的一些jar包,可选择方案:1.所有jar包放在一个文件夹中给第三方(感觉好不专业):2.将日志处理模块和依赖包全部打成一个jar包,明显这种方法专业且方便.因此引入maven的assembly插件来完成这个工作. 前提是:你的项目也是用maven来管理的. 1.在pom.xml文件中增加assembly插件: <!-- for package --> <plugin>

Intell 使用 assembly插件 打包可执行Iar包

1.在pom.xml文件中增加assembly插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <executions> <execution> <i

Maven Assembly插件介

你是否想要创建一个包含脚本.配置文件以及所有运行时所依赖的元素(jar)Assembly插件能帮你构建一个完整的发布包. Assembly插件会生成 "assemblies", 此特性等同于的Maven 1 distribution plug-in..该插件不仅支持创建二进制归档文件,也支持创建源码归档文件.这些assemblies定义在一个assembly描述符文件里.你可以选择自定义assembly描述符或者直接使用插件自带的三个预定义描述符中的任何一个. 目前Assembly插件

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

一.背景 最近我们项目越来越多了,然后我就在想如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成,通过研究,我们通过使用maven的assembly插件完美的实现了该需求,爽爆了有木有.本文分享该插件的配置以及微服务的统一打包方式. 二.配置步骤及其他事项 1.首先我们需要在pom.xml中配置maven的assembly插件 1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.m

maven使用assembly插件打zip包

一,pom引入插件 <build> <plugins> <!-- 使用assembly插件打成zip --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> <config

maven--插件篇(assembly插件)

maven-assembly可以通过dependencySets将依赖的jar包打到特定目录. 1. 简介 简单的说,maven-assembly-plugin 就是用来帮助打包用的,比如说打出一个什么类型的包,包里包括哪些内容等等. 2. 常见的maven插件 maven插件是在生命周期中某些阶段执行的任务.一个插件完成一项功能.以下介绍几种常见的插件.如对于打包来说,有多种插件选择.最常见的有以下3个: plugin function maven-jar-plugin maven 默认打包插

sbt的assembly插件使用(打包所有依赖)

1.sbt是什么 对于sbt 我也是小白, 为了搞spark看了一下scala,学习scala时指定的构建工具就是sbt(因为sbt也是用scala开发的嘛),起初在我眼里就是一个maven(虽然maven我也没怎么用),后面构建2个项目之后,发现还是蛮强大的,就是学习成本有点高. 哎,但是现在什么东东没有学习成本呢.扯远了,0.13版本的入门之旅参考:http://www.scala-sbt.org/0.13/tutorial/zh-cn/index.html 2.assembly是sbt的一

maven插件--assembly

之前maven项目中使用assembly插件单独打包项目依赖包,项目只有一个模块也就一个pom,配置这个插件,一切很顺利.但是现在的项目复杂了,有parent有child,多模块.按照之前的做法怎么也不能成功.上网搜了下,找到一个打包多模块的,说每个模块单独打包,想了下感觉不对,在每个模块下面是把依赖的jar打包了,但是每个模块是单独的呀.最后求助官网: http://maven.apache.org/plugins/maven-assembly-plugin/examples/index.ht