⑴ 打包时如何加入src目录外的资源
一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。
有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。(maven认为src/main/java只是java的源代码路径)。网络上有很多方法,我大概试了下,几种方法都可以,可以任选一种即可。
方法1,其中**/*这样的写法,是为了保证各级子目录下的资源文件被打包。
<build>
<finalName>test</finalName>
<!--
这样也可以把所有的xml文件,打包到相应位置。
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
⑵ 如何让maven跳过某些指定的Test用例
<properties>
<maven.test.skip>true</maven.test.skip>
<maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>${maven.test.skip}</skip>
<testFailureIgnore>${maven.test.failure.ignore}</testFailureIgnore>
</configuration>
</plugin>
⑶ maven打包的时候会忽略掉空文件夹,怎样配置让它不忽略
我先上代码,主要 是 maven-war-plugin 有个includeEmptyDirectories参数 ,
注意:这个参内数maven-war-plugin 2.4 的版本才支持容
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<includeEmptyDirectories>true</includeEmptyDirectories>
</configuration>
</plugin>
</plugins>
</build>
⑷ 求教java maven项目打包引入的问题,求大神解答
如果在另一个Maven项目中引入了一个打包好的jar包,并且在运行时发现缺少jar包中所依赖的第三方库,有以下几种解决方法。
使用maven-shade-plugin插件:在打包项目的pom.xml中配置maven-shade-plugin插件,让它将所有的依赖库打包进jar中。
在引入的jar包的pom.xml中增加第三方库的依赖配置, 编写dependency:unpack命令,将对应的第三方库依赖解压在项目中。
使用maven-dependency-plugin来解决问题,将依赖库重新复制到本地仓库中, 并在需要使用的项目中通过maven-dependency-plugin来引入这些依赖库。
在打包好的jar中加入manifest文件,在manifest文件中配置Class-Path,将第三方库路径配置在Class-Path中,然后将这些第三方库放在同一目录下。
将jar包中的第三方库放在项目的lib目录下,然后在项目的编译打包的时候加上lib路径,这样可以保证第三方库能够被项目读取到.
选择其中一种方法来实现可以根据具体的项目情况来确定,并且在解决问题的时候需要结合项目的特点进行选择.
⑸ 如何解决包冲突问题
由于,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中引用tilestld的写法发生变化故解决法如下:1.去掉原strtus.jar2.去掉struts-tiles.tld3.将所有JSP页面中的改为
⑹ maven-assembly-plugin 打包,怎么能设置起始目录
src-main–bin脚本库–javajava源代码文件–resources资源库,会自动复制到classes目录里–filters资源过滤文件–assembly组件的描述配置(如何打包)–config配置文件–webappweb应用的目录。WEB-INF、css、js等-test–java单元测试java源代码文件–resources测试需要用的资源库–filters测试资源过滤库-siteSite(一些文档)target
⑺ Jenkins的maven工程打包的时候怎么指定不同环境的配置文件
这里我们指定配置文件问test
这个是在pom.xml里面定义的,
里面有test,proction和devlop三个定义
在不同环境使用Jenkins的时候,-P后面加上不同的参数
我这里是测试环境,所以我这里是-Ptest
现在我们来看一下pom.xml的部分内容
⑻ Your stream was neither an OLE2 stream, nor an OOXML stream
最近使用Apache poi 做excel导出的功能,遇到了如下问题:
起初对比其他的web工程,没有发现如何解决。最后找到抛出此异常的源码:
org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:75)
可以看到,在调用 WorkbookFactory.create(inputStream) 来创建Workbook时,会根据文件类型(文件头)来区别、创建合适的Workbook对象。如果不满足前两个if条件里的 hasPOIFSHeader() 方法,就会抛出异常。而两个if里的hasPOIFSHeader()方法就是针对Excel2003和Excel2007的判断,读取文件流中的文件头(byte[8])信息去判断。
那既然是根据文件的头部信息去比对进行判断的,并且excel只有2003和2007两个版本,那为什么放在classpath下的excel模板读取后创建WorkBook时,文件header判断都不符合呢?
最后找到原因: maven编译打包时,将resources下的资源文件转码了。最终web工程打出的jar/war包,里面归档进去的excel模板文件都是乱码,文件头信息被修改,导致poi根本无法识别这样的excel文件。
项目的pom.xml中添加maven资源插件
1、推荐使用poi-ooxml中的 WorkbookFactory.create(inputStream) 来创建Workbook,因为HSSFWorkbook和XSSFWorkbook都实现了Workbook接口。(Excel2003和Excel2007两个版本在此通过文件header进行适配)
2、当你的工程中,需要放入一些静态资源文件作为模板,比如excel填充模板,word模板(里面有些固定样式,程序运行时用模板导出报表类的),这个时候,最好都配置maven去除资源文件不被转码。下面的链接有2种方式。
Maven 打包 过滤资源文件
https://blog.csdn.net/qing_mei_xiu/article/details/80661216
⑼ static文件夹不会被打包maven
maven打包的时候会进行压缩,把一些静态文件压缩,失效,解决办法是将要要进行过滤的进行把静态文件排除,不过滤的将这些图标文件包含进来。