- 浏览: 2191285 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
在开发Maven项目中,我们可能有各种各样的打包需求,当然最简单的就是,把整个Application打包成一个jar,这是Spring-boot项目中,常见的打包项目,有些项目可能比较复杂,还需要打包一些外部的配置的文件,或者自定义的shell脚本或者bat命令等,这时候使用assemble命令就比较方便了。
项目结构目录如下:
除了标准的创建maven项目会自带
src/main/java
src/main/resource
src/test/java
外,我们还自定义了bin,conf,assemble目录,其中bin目录用来存放项目启动,停止的一些脚本,conf存放了一些
外部配置文件,外部文件比较灵活,比如参数改了,不需要重新编译,只需要重启这个项目即可,assemble存放了我们打包的描述文件package.xml,内容如下:
<?xml version="1.0"?> <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"> <!--项目标识,设置的话,生成后的zip文件会加上此后缀--> <id></id> <!--打包格式--> <formats> <format>zip</format> </formats> <!--是否包含根目录文件夹--> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <!--<fileSet>--> <!--<directory>${project.basedir}\src\main\resources</directory>--> <!--<outputDirectory>\</outputDirectory>--> <!--<includes>--> <!--<include>some/path</include>--> <!--</includes>--> <!--<excludes>--> <!--<exclude>some/path1</exclude>--> <!--</excludes>--> <!--</fileSet>--> <!--自定义文件描述集--> <fileSet> <!--自定义脚本目录打包--> <directory>${project.basedir}\src\main\bin</directory> <outputDirectory>\bin</outputDirectory> <includes> <include>*.*</include> </includes> <!--设置权限--> <fileMode>0755</fileMode> </fileSet> <fileSet> <!--外部配置文件打包--> <directory>${project.basedir}\src\main\config</directory> <outputDirectory>\config</outputDirectory> <includes> <include>*.*</include> </includes> <fileMode>0644</fileMode> </fileSet> </fileSets> <dependencySets> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <outputDirectory>lib</outputDirectory> <!-- 将scope为runtime的依赖包打包到lib目录下。 --> <scope>runtime</scope> </dependencySet> </dependencySets> </assembly>
然后在主pom.xml中,加入如下一段内容:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!--<appendAssemblyId>true</appendAssemblyId>--> <descriptors> <!--描述文件路径--> <descriptor>src/main/assemble/package.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-zip</id> <!-- 绑定到package生命周期阶段上 --> <phase>package</phase> <goals> <!-- 绑定到package生命周期阶段上 --> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
至此,我们在执行mvn clean package 时,就会发现target目录下,多了一个zip的压缩包:
将zip包解压后,如下:
我们就可以直接将压缩包,传到linux上执行脚本启动了,需要注意的是,在windows下编辑的脚本文件,在linux上可能执行不成功,大家可以下载一个dos2unix的工具,对脚本格式重新修改即可。
参考资料:
http://www.cnblogs.com/JerryWang1991/p/3936378.html
http://skydream.iteye.com/blog/437937
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
发表评论
-
记一次log4j不打印日志的踩坑记
2019-09-22 01:58 1600### 起因 前几天一个跑有java应用的生产集群(200多 ... -
在Java里面如何解决进退两难的jar包冲突问题?
2019-07-23 19:10 1262如上图所示: es api组件依赖guava18.0 ... -
如何轻松理解二叉树的深度遍历策略
2019-07-03 23:33 1164我们知道普通的线性数据结构如链表,数组等,遍历方式单一 ... -
为什么单线程Redis性能也很出色
2019-01-21 18:02 2229高性能的服务器,不一 ... -
如何将编程语言里面的字符串转成数字?
2019-01-11 23:23 2118将字符串转成数字在很 ... -
为什么Java里面String类是不可变的
2019-01-06 18:36 1692在Java里面String类型是不可变对象,这一点毫无疑问,那 ... -
关于Java里面volatile关键字的重排序
2019-01-04 18:49 1092Java里面volatile关键字主 ... -
多个线程如何轮流打印ABC特定的次数?
2018-12-11 20:42 6070之前的一篇文章,我给 ... -
聊聊Java里面的引用传递
2018-11-16 21:21 994长久以来,在Java语言里面一直有一个争论,就是Java语言到 ... -
理解计数排序算法的原理和实现
2018-10-11 10:03 2098计数排序(Counting sort) ... -
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
2018-09-06 11:31 3396### 前言 理解HashMap和Con ... -
关于Java里面多线程同步的一些知识
2018-07-18 09:45 1113# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
Java单例模式之双检锁深入思考
2018-07-08 12:25 3299# Java单例模式之双检锁 ... -
关于Java里面多线程同步的一些知识
2018-07-08 12:23 1127# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
重新认识同步与异步,阻塞和非阻塞的概念
2018-07-06 14:30 1478# 重新认识同步与异步 ... -
线程的基本知识总结
2018-06-27 16:27 1064### (一)创建线程的方式 (1)实现Runnable接口 ... -
Java里面volatile关键字修饰引用变量的陷阱
2018-06-25 11:42 1393# Java里面volatile关键字修饰引用变量的陷阱 如 ... -
关于Java里面的字符串拼接,你了解多少?
2018-06-25 11:28 1378# 关于Java里面的字符串 ... -
深入理解Java内存模型的语义
2018-06-25 11:39 747### 前言 Java内存模型( ... -
如何证明Java多线程中的成员变量数据是互不可见的
2018-06-21 10:09 1510前面的几篇文章主要介绍了Java的内存模型,进程和线程的定义, ...
相关推荐
apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...
本文详细介绍了exec-maven-plugin的基本概念、配置方法、执行简单和系统脚本、捕获命令输出、条件执行、并发执行、使用环境变量、错误处理、高级配置、使用案例以及局限性。通过这些知识点,读者可以更加自信地在...
Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...
Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...
总的来说,`maven-assembly-plugin`是Maven构建过程中的一个重要工具,它帮助开发者灵活地定制打包过程,适应不同环境的需求。结合Spring Boot项目,我们可以更高效地管理和部署应用程序,提高开发和运维的效率。
Maven的插件系统也是其强大之处,通过安装额外的插件,可以支持更多的构建任务,如生成源码文档(javadoc)、执行单元测试(maven-surefire-plugin)、打包成不同格式(如JAR、WAR或EAR)等。 "linux版本maven"指的...
10. **maven-plugin-api** 和 **maven-plugin-registry**:提供API和接口供Maven插件使用,允许开发者编写自定义插件来扩展Maven的功能。 11. **maven-core** 和 **maven-model**:Maven的核心组件,负责解析POM,...
apache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9....
例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin用于执行单元测试,maven-jar-plugin则负责创建JAR文件。 在实际开发中,Maven的`settings.xml`文件通常放在用户的主目录下的`.m2`目录下,它...
例如,使用maven-surefire-plugin进行单元测试,maven-javadoc-plugin生成API文档,maven-source-plugin打包源代码。在`pom.xml`中定义插件并配置相关参数,然后通过`mvn plugin:goal`执行。 总之,Apache Maven ...
maven-deploy-plugin-2.8.2.jar
- 使用旧版本的`maven-jetty-plugin`可能会导致某些新特性无法使用或与其他库冲突,因此保持插件更新是很重要的。 6. 结论: `maven-jetty-plugin`简化了Java Web应用的开发和测试过程,通过Maven的命令行即可...
每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...
5. Maven插件:Maven通过插件机制扩展其功能,如maven-compiler-plugin用于编译,maven-surefire-plugin进行测试,maven-jar-plugin打包成JAR文件等。每个插件都有多个目标(goals),这些目标在生命周期的不同阶段...
maven-jar-plugin-3.1.1.jar
Maven还支持插件机制,允许扩展其功能,例如,你可以使用maven-javadoc-plugin生成API文档,maven-surefire-plugin执行单元测试,或者maven-site-plugin生成项目网站。在pom.xml中定义插件及其配置,即可实现这些...
- **插件**: Maven的扩展性主要体现在插件上,如`maven-compiler-plugin`用于编译Java代码,`maven-surefire-plugin`用于执行单元测试。 - **版本控制**: Maven遵循严格的版本号规则,例如`1.0.0-SNAPSHOT`表示开发...
apache-maven-3.6.3-bin.zip maven3,6版本, 可用apache-maven-3.6.3-bin.zip maven3,6版本, 可用apache-maven-3.6.3-bin.zip maven3,6版本, 可用apache-maven-3.6.3-bin.zip maven3,6版本, 可用apache-maven-3.6.3-...
例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin负责运行单元测试,maven-jar-plugin用来打包jar文件。 在软件开发过程中,Maven还可以生成项目报告,包括Javadoc、代码覆盖率报告等。同时,...