Maven的POM文件里,build/resources里include和exclude

本文介绍了使用Maven打包*.dat文件过程中遇到的问题及解决办法。由于*.dat文件被错误地转码为ASCII字符,文章详细说明了如何通过调整资源文件配置避免此问题,并给出了正确的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超·蛋·疼

同事的工程里有*.dat文件要打包到最后的JAR包里,但POM文件里resources的配置没放*.dat文件通过。于是加了一条include放过它,但那里是配置在<filtering>true</filtering>下面的。

结果杯具了,那些*.dat文件在被Maven打包的时候被“转码”了,其中的一些数据就变成了ASCII问号(0x3F)。

[url]http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html[/url]
按照这个页面,要把resources配成两段,不把*.dat过滤掉。

然后mvn eclipse:eclipse的时候又败了。
一看,我们用的eclipse插件是2.7的,而用2.6的话就没问题:
mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse


好吧貌似一堆人都遇到过同样的问题了。

[color=gray]或许升到2.8版本能解决问题?同事还在试,这边先记下来再说。[/color]
败了,2.8也报同样的错。诶这写法还是有问题么

更新:得到同事高战的指点,Maven还有一个专用于二进制文件的filter可用:
[url]http://maven.apache.org/plugins/maven-resources-plugin/examples/binaries-filtering.html[/url]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>io.renren</groupId> <artifactId>renren-security</artifactId> <version>4.0.0</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>renren-api</artifactId> <packaging>jar</packaging> <description>renren-api</description> <dependencies> <dependency> <groupId>io.renren</groupId> <artifactId>renren-common</artifactId> <version>4.0.0</version> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- 跳过单元测试 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.14</version> <configuration> <imageName>renren/api</imageName> <dockerDirectory>${project.basedir}</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <!-- 运行命令 mvn clean package docker:build 打包并生成docker镜像 --> </plugin> </plugins> </build> </project> 这是完整的pom文件 请帮我修改一下
最新发布
06-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值