Spring Shell打Jar包时常用小技巧
1、Main-Class
spring-shell项目打Jar包的一个必要条件就是,指定Main-Class为org.springframework.shell.Bootstrap
一般情况下,如果想在IDE中直接运行项目,显示在控制台中,也会调用org.springframework.shell.Bootstrap中的Main方法。如下:
import org.springframework.shell.Bootstrap; import java.io.IOException; public class HelloApplication { public static void main(String[] args) throws IOException { Bootstrap.main(args); } }
2、配置读取新xml文件
spring-shell项目,要求在resource/META-INF/spring目录下,必须有一个spring-shell-plugin.xml文件,打Jar包的时候必须要包括这个文件。
在IDEA中,Maven项目是会默认扫描resource目录的,但是打成Jar包的时候, 是不会扫描的。我也不知道为什么,只是只是此时最好在pom.xml中配置一下,让它读取这个xml文件:
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
PS:src/main/java目录下的xml文件也得读。如果把上面这两个<resource>合并到一起,写成<directory>src/main</directory>,反而是不对的。太奇怪了。
3、打包多个Jar包
如果项目打Jar包时,需要依赖于另外一个spring-shell的Jar包,可以直接在pom.xml中添加依赖,这样就会把所有的新增的命令合并到一起
<dependencies> <dependency> <groupId>cn.com.bignzi</groupId> <artifactId>dcore</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>cn.com.bignzi</groupId> <artifactId>plugin.data</artifactId> <version>0.0.1-SNAPSHOT</version> </dependencies>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Spring Boot调用 Shell 脚本实现看门狗功能
需要实现看门狗功能,定时检测另外一个程序是否在运行,使用 crontab 仅可以实现检测程序是否正在运行,无法做到扩展,如:手动重启.程序升级(如果只需要实现自动升级功能可以使用 inotify)等功能:最后决定使用 Spring Boot 调用 Shell 脚本来实现 一.脚本 1.1 启动脚本 #!/bin/bash ps -ef | grep "demo-app-0.0.1-SNAPSHOT.jar" | grep -v "grep" if [ "$
-
Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法
废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` CUR_SHELL_DIR=`pwd` CUR_SHELL_NAME=`basename ${BASH_SOURCE}` #修改这里jar包名即可 JAR_NAME="xxxxxxxxxxxx.jar" JAR_PATH=$CUR_SHELL_DIR/$JAR_NAME #JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024m -XX:Pe
-
通过spring用beanshell实现java接口示例
说明 1.通过脚本语言让JAVA执行动态代码2.用Spring可以将脚本语言代理成Java接口的实现类3.Spring2.5.6中支持三种脚本语言ruby,Groovy,BeanShell4.示例中为spring与beanshell结合5.依赖spring2.5.6,bsh-2.0b4 复制代码 代码如下: import org.junit.Test;import org.springframework.scripting.bsh.BshScriptUtils; import bsh.EvalE
-
Spring Shell应用程序开发流程解析
向shell提供命令非常简单,需要学习的注解很少.该命令的实现风格与使用依赖注入的应用程序的开发类相同,您可以利用Spring容器的所有特性来实现您的命令类. spring-shell官网地址:https://projects.spring.io/spring-shell/ 标记接口 创建命令的第一步是实现标记接口CommandMarker,并使用Spring的@Component注解对类进行注解(注意一个JIRA问题:提供@CliCommand元注解避免使用标记接口).使用helloworl
-
详解spring boot 以jar的方式启动常用shell脚本
用spring boot框架做的项目,将第三方包全部打在jar里面,通过shell脚本启动和停止服务,常用的shell脚本模板如下: #!/bin/bash JAVA_OPTIONS_INITIAL=-Xms128M JAVA_OPTIONS_MAX=-Xmx512M _JAR_KEYWORDS=monitor-alarm-task-1.0-SNAPSHOT.jar APP_NAME=monitor-alarm-task APPLICATION_FILE=/opt/scpip_monitor/a
-
通过Spring Shell 开发 Java 命令行应用
提到 Java,大家都会想到 Java 在服务器端应用开发中的使用.实际上,Java 在命令行应用的开发中也有一席之地.在很多情况下,相对于图形用户界面来说,命令行界面响应速度快,所占用的系统资源少.在与用户进行交互的场景比较单一时,命令行界面是更好的选择.命令行界面有其固定的交互模式.通常是由用户输入一系列的参数,在执行之后把相应的结果在控制台输出.命令行应用通常需要处理输入参数的传递和验证.输出结果的格式化等任务.Spring Shell 可以帮助简化这些常见的任务,让开发人员专注于实现应用
-
springboot打包不同环境配置以及shell脚本部署的方法
前言 本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境的配置 通常一套程序分为了很多个部署环境:开发,测试,uat,线上 等,我们要想对这些环境区分配置文件,可以通过两种方式: 通过a
-
Spring Shell打Jar包时常用小技巧
1.Main-Class spring-shell项目打Jar包的一个必要条件就是,指定Main-Class为org.springframework.shell.Bootstrap 一般情况下,如果想在IDE中直接运行项目,显示在控制台中,也会调用org.springframework.shell.Bootstrap中的Main方法.如下: import org.springframework.shell.Bootstrap; import java.io.IOException; public
-
Spring打包jar包时jsp页面无法访问问题解决
spring打包jar包时jsp页面无法访问 问题如下 当前pom.xml配置 <build> <resources> <!--引入配置文件--> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> <!--引入静态文件--> <resource&
-
基于Spring中各个jar包的作用及依赖(详解)
先附spring各版本jar包下载链接http://repo.spring.io/release/org/springframework/spring/ spring.jar 是包含有完整发布模块的单个jar 包.但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar 示例图片为Spring-2.5.6.jar的包目录 下面讲解各个jar包的作用: 1.org.springframework.aop或sp
-
在启动后台 jar包时,使用指定的 application.yml操作
jar 包启动时指定配置文件 application.yml nohup java -jar vPaas.jar --spring.config.location=/opt/vpaas-conf/application.yml > /opt/vpaas-conf/nohup.out 2>&1 & 如果不喜欢将 application.properties 作为配置文件名,你可以通过指 定 spring.config.name 环境属性来切换其他的名称,也可以使 用 spring
-
Spring Boot打jar包后配置文件的外部优化配置方法
在未进行任何处理的情况下,Spring Boot会默认使用项目中的 application.properties 或者 application.yml 来读取项目所需配置. 我这里只记录几种自己所用到的. 访问命令行属性 在默认的情况下, SpringApplication 会将任何命令行选项参数(以 - 开头 --server.port=9000)转换为 property 并添加到Spring环境当中. 例如,启动项目的时候指定端口: java -jar analysis-speech-too
-
Spring boot 打jar包分离lib的正确配置方式
前言 Springboot 打jar包分离lib,配置文件的方式,网上可以搜到的我都没试通.跟刘大神(大神没有博客,很可惜)讨论后,给出了这么一个解决方案,供大家参考. 部署环境 window 10 redhat 6.4 其他版本没有尝试,应该也是可以的 POM.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.
-
spring打包到jar包的问题解决
今天把spring打包到一个jar包中,jar运行时抛异常 Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 5 in XML document from class path resource [spring.xml] is invalid; nested exception is org.xml.sax.SAXParseExce
-
Java在制作jar包时引用第三方jar包的方法
我用的是Eclipse打包,但在CMD窗口执行的时候报"ActiveMQ.jar中没有主清单属性"错误. 在网上搜了下,这个与MANIFEST.MF文件有关,该文件没有定义MAIN方法所在类的路径,利用好压打开jar包,果然如此.里面只有一行 Manifest-Version: 1.0 需添加Main-Class.在本例中,添加如下: Main-Class: com.luoluo.TestUse.activemq.ActiveMQStateMain 上面,有几点需要注意: 1. Mai
-
spring通过导入jar包和配置xml文件启动的步骤详解
第一步,进到 spring仓库下载一个spring包,大家前往官网下载的时候,记得下载dist.zip后缀的包,里面包括了jar包和对应的英文文档. 下面是自己已经下载的一个,提供百度云链接: 百度云,提取码:hpst 第二步,打开idea -> File -> Project Structrure -> Libraries,点击上面的 "+"号,找到存放spring源码的目录,进入libs目录,然后将 beans.context.core.expression.jc
-
Javascript常用小技巧汇总
本文实例讲述了Javascript常用小技巧.分享给大家供大家参考.具体分析如下: 一.True 和 False 布尔表达式 下面的布尔表达式都返回 false: null undefined '' 空字符串 0 数字0 但小心下面的, 可都返回 true: '0' 字符串0 [] 空数组 {} 空对象 下面段比较糟糕的代码: 复制代码 代码如下: while (x != null) { 你可以直接写成下面的形式(只要你希望 x 不是 0 和空字符串, 和 false): 复制代码 代码如下:
随机推荐
- IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
- 深入浅析JavaScript中的scrollTop
- mysql,mysqli,PDO的各自不同介绍
- PHP中把对象转换为关联数组代码分享
- PHP检测用户语言的方法
- twig模板获取全局变量的方法
- 利用QT写一个极简单的图形化Python闹钟程序
- ASP生成动态flash的工具与介绍
- 全国省市二级联动下拉菜单 js版
- js中opener与parent的区别详细解析
- jsp计数器-jsp文件
- 12个超实用的JQuery代码片段
- linux删除无效链接文件脚本分享
- redhat下修改主机名
- Android签名机制介绍:生成keystore、签名、查看签名信息等方法
- PHP输出数组中重名的元素的几种处理方法
- 创建无限极分类树型结构的简单方法
- javascript asp教程More About Recordsets
- 详解vue移动端项目代码拆分记录
- CentOS7配置阿里云yum源的方法代码