maven项目引入外部文件(资源)

1. maven项目如何引入外部文件?

maven项目一般在main目录下分为java和resources,前者是源码,后者是资源(含外部文件)。

在maven的pom.xml中指定resources所在目录后,当maven编译时,resources中的资源会被maven全量复制到target/classes中。(不依赖任何maven插件,但是想java编译顺利,至少还是引入maven-compiler-plugin)

<resources>
    <resource>
        <directory>src/main/resources/base</directory>
        <targetPath>${basedir}/target/classes</targetPath> <!-- 可选,resource的部署目标目录 -->
        <excludes>
            <exclude>*.db</exclude>
        </excludes>
    </resource>
</resources>

在代码中想加载此类文件时,可以通过

PoiThriftServiceImpl.class.getClassLoader().getResource("resourceFileName").getPath();

获取resources下名为resourceFileName的文件。

详见:

https://blog.csdn.net/tototuzuoquan/article/details/45033467

2. 如果是给别人提供的jar包中,引入外部文件?

代码被打成jar包后,target/classes下的源码和文件会都进入jar包。

但是外部jar包在被引入后,经过maven编译,会成为一份.class和内部的java类处于同一classes目录下。

此时,类进行getClassLoader获取的是内部包的target/classes目录。

所以,外部文件需要放到内部项目的resources中,即可被jar包所发现。

发布了66 篇原创文章 · 获赞 17 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/ligeforrent/article/details/86515439