Maven 关于打包插件与Resource中exclude的问题

在写工程的时候很多资源文件会放到Maven的Resource文件夹下。像Log4j这种配置文件,打包的时候我们不能将其拷贝到jar包中。怎么办呢?使用Maven的JAR插件吧。

讲JAR插件之前先说说Resource标签。大家应该都知道这个标签使用来拷贝资源文件的。那个directory是用来配置资源文件的位置的。它是基于工程目录的,如果你不放心可以在前满加入${basedir}占位符。坑的是下面的exclude,这个时候我发现使用跟directory一样的绝对路径去排除log4j.xml没能成功。怀疑这个可能是基于directory的相对路径(没有验证过)。
资源文件赢还有个target标签,代表的是资源输出到那个目录下。注意,这个时候是相对于target文件夹了。

像下面这样,资源文件就配置好了。

<resources>
    <resource>
      <directory>src/main/resources</directory>
      <targetPath>resources</targetPath>
      <!--<excludes>-->
        <!--<exclude>log4j.xml</exclude>-->
      <!--</excludes>-->
    </resource>
</resources>

在这里我只讲怎么将文件移除。比如在${basedir}/src/main/resource下的log4j.xml文件。在插件里只需要将按如下配置即可。

我只强调我被坑的地方。那就是exclude标签。这个exclude是相对于target文件夹的。比如你刚刚配置resource的时候设置target是outResource的话,相应的,下面的exclude也应该改成outResource/log4j.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <configuration>
      <excludes>
        <exclude>log4j.xml</exclude>
      </excludes>
    </configuration>
</plugin>

这两个路径都是相对于target来说的,在Maven的官方文档中么有发现相关的说明(或许是我没注意)。所以在这里有必要写明一下,欢迎交流指正。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值