『壹』 maven-spring-boot 打可执行jar时,怎么排除provided的jar
spring-boot默认提供内嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以启动。但是,有时候我们更希望一个tomcat来管理多个项目,这种情况下就需要项目是war格式的包而不是jar格式的包。spring-boot同样提供了解决方案,只需要简单的几步更改就可以了,这里提供maven项目的解决方法:1.将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法@SpringBootApplicationpublic class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}public static void main(String[] args) throws Exception {SpringApplication.run(Application.class, args);}}123456789101112132.在pom.xml文件中,project下面增加package标签<packaging>war</packaging>13.还是在pom.xml文件中,dependencies下面添加<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>12345这样,只需要以上3步就可以打包成war包,并且部署到tomcat中了。需要注意的是这样部署的request url需要在端口后加上项目的名字才能正常访问。spring-boot更加强大的一点就是:即便项目是以上配置,依然可以用内嵌的tomcat来调试,启动命令和以前没变,还是:mvn spring-boot:run。如果需要在springboot中加上request前缀,需要在application.properties中添加server.contextPath=/prefix/即可。其中prefix为前缀名。这个前缀会在war包中失效,取而代之的是war包名称,如果war包名称和prefix相同的话,那么调试环境和正式部署环境就是一个request地址了。
『贰』 jar包里面的代码如何读取jar包中的配置文件
先看代码目录结构:src/weather/QueryWeather.javaweather.xml程序里面可以直接读取到weather.xml文件,代码如下:private static String getXmlContent()throws IOException {FileReader f = new FileReader("src/weather/weather.xml");BufferedReader fb = new BufferedReader(f);StringBuffer sb = new StringBuffer("");String s = "";while((s = fb.readLine()) != null) {sb = sb.append(s);}return sb.toString();}但是一旦把这个class文件和xml文件打成jar包再运行,对不起,报错,QueryWeather.class字节码根本找不到weather.xml在看打成jar包的结构:META-INFMANIFEST.MFweatherQueryWeather.classweather.xml用下面的方法就可以找到weather.xmlprivate static String getXmlContent()throws IOException {Reader f = new InputStreamReader(QueryWeather.class.getClass().getResourceAsStream("/weather/weather.xml"));BufferedReader fb = new BufferedReader(f);StringBuffer sb = new StringBuffer("");String s = "";
『叁』 如何在maven中排除jar包中引入的另一个jar包
例如:排除【aaa】jar包中的【b】jar包,可用下面的方式<dependency><groupId>aaa</groupId><artifactId>aaa</artifactId><version>0.0.0</version><exclusions><exclusion><artifactId>b</artifactId><groupId>b</groupId></exclusion></exclusions></dependency>
『肆』 jar包中的类读取配置文件的路径问题,求大家帮帮忙
应该是直接就可以读取的。因为你的配置文件和Jar文件在同一个目录下,如果你的应用能找到jar文件,也就是可以找到配置文件。不过你要在classpath路径中添加*.properties。
『伍』 如何排除jar包冲突
由于,lib目录中的 struts.jar 和 struts-core-1.3.8.jar 存在冲突导致部分服务器上应用启动报错,或访问后台JSP页面时报TILES标签错误,经排查,其实struts.jar中的class文件在struts-core-1.3.8.jarstruts-taglib-1.3.8.jarstruts-tiles-1.3.8.jar中均已存在,且版本要高于struts.jar中的classstruts.jar为version1.0而struts-core-1.3.8.jar,truts-taglib-1.3.8.jar,struts-tiles-1.3.8.jar为version1.2在struts1.2中引用tiles tld的写法发生变化故解决办法如下:1.去掉原strtus.jar2.去掉struts-tiles.tld3.将所有JSP页面中的<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>改为<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
『陆』 maven pom 怎么从jar包里面排除一个类 exclude 某个类
没法通过pem文件配置移除某个特定的类,可以移除整个jar包和移除该jar包的依赖jar包
『柒』 java窗体程序 打包jar后 怎么动态修改xml配置信息,请问哪位大神会啊
这种做法很不好呀,应该在窗体程序中增加一个配置文件,原包中的xml文件做为原始配置不动,窗体程序运行时可做一个菜单项“配置”,新做的配置修改保存到本地一个xml文件中,以后启动窗体程序时先检查有没有这个本地xml文件,有则从它里面读入配置,否则从类路径的jar中读取配置
『捌』 java jar怎么把指定目录排除掉再进行打包
在项目的pom.xml文件里面添加如下配置:<plugin><groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <warName>loginweb</warName> <outputDirectory>target</outputDirectory> <!– 排除 –><packagingExcludes>WEB-INF/classes/*jdbc.properties,WEB-INF/classes/*config.properties,regex[WEB-INF/lib/(?!log4j-1|common-1).*.*.jar]</packagingExcludes></configuration> </plugin>配置说明: 1. WEB-INF/classes/*_jdbc.properties: 过滤 任何前缀的 _jdbc.properties 配置文件(如:我上篇博客自动打不同环境的包中提到的添加的不同环境的jdbc配置文件,那么在打包时候,排除自己添加的这个配置文件) 2. %regex[WEB-INF/lib/(?!log4j-1|common-1)…jar] 通过正在表达式配置打包时,排除除了log4j-1和common-1 的 1.任何版本的jar包。即打包时只添加这两个jar包到war包里面,其他的任何jar都排除不打包进去 (PS:为了tomcat 共享jar包,所以项目中不打jar,当然除了自己项目间相互依赖的jar,比如这个jar会经常自己修改,那么经常修改的,就不排除,打包时候把他们也打进去。对于tomcat如何共享jar包,后续再详细描述) 3. 如果有多个条件,用逗号隔开。对于packagingExcludes 的详细使用,请查看官网: http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html
『玖』 jar包中配置文件的路径
Propertiesprop=newProperties();prop.load(newFileInputStream("D://conf//a.properties"));
『拾』 spring boot使用gradle打包怎么样排除指定jar包
不管是来在Eclipse或是在IntelijIdea中,都有比较好源的方法进行打包,但是在gradle时代,打JAR包就只好自己动手写脚本了。jar包其实就是把所有的class文件集合在一起,只要我们找到了编译时的输出目录即可。观察下,在build/intermediates/classes/release(debug)下有生成临时的class,这就是我们需要的路径了,然后,使用gradle中预定义Jar的task,进行配置即可。