运行Maven构建时如何访问JAR中的文件

我想通过liquibase-maven-plugin运行liquibase更新,但是变更集yml文件位于我通过依赖关系引入的.jar中。

当我使用TotalCommander打开.jar时,它具有以下结构: xy.jar / changelog / changeset.yml。

我尝试将其包含为资源目录,但是它告诉我.jar不是目录失败。

我还尝试构建WAR,只是将liquibase changeLogFile属性设置为指向.jar的路径,例如{projectDir} / target / .. war / .. lib / .jar / changelog / myFile.yml 但是行家无法通过这种方式找到它。

是否可以通过某种方式访问​​此文件?

xiaoyuan523 回答:运行Maven构建时如何访问JAR中的文件

您可以使用以下代码读取文件。

InputStream inputStream = getClass().getClassLoader().getResourceAsStream("changelog/myFile.yml");
,

感谢您的答复,但是解决方案比较简单,在这方面我很生疏:)我只需要从WAR中添加所需的JAR作为Maven依赖项即可。这会将JAR的内容添加到Maven构建过程中的类路径中,因此我可以像在项目根路径上一样引用它的文件。

TLDR:在pom中添加JAR作为依赖项,并使用路径:

<changeLogFile>changelog/xy.jar</changeLogFile>

本文链接:https://www.f2er.com/3131305.html

大家都在问