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

Java 如何在运行Maven构建时访问JAR中的文件,java,maven,jar,war,liquibase,Java,Maven,Jar,War,Liquibase,我想通过liquibase maven插件运行一个liquibase更新,但是变更集yml文件位于一个.jar中,我通过依赖关系将其拉入 当我用TotalCommander打开.jar时,它的结构如下: xy.jar/changelog/changeset.yml 我尝试将其作为资源目录,但它没有告诉我.jar不是目录 我还尝试构建一个WAR,只是将liquibase changeLogFile属性设置为指向.jar的路径,比如{projectDir}/target/.WAR/.lib/.jar

我想通过liquibase maven插件运行一个liquibase更新,但是变更集yml文件位于一个.jar中,我通过依赖关系将其拉入

当我用TotalCommander打开.jar时,它的结构如下: xy.jar/changelog/changeset.yml

我尝试将其作为资源目录,但它没有告诉我.jar不是目录

我还尝试构建一个WAR,只是将liquibase changeLogFile属性设置为指向.jar的路径,比如{projectDir}/target/.WAR/.lib/.jar/changelog/myFile.yml 但是maven不能这样找到它


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

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

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

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

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


changelog/xy.jar

虽然我回答了你的问题,但这个问题之前已经被问过并回答过了。这不是我真正想知道的。我在这个过程中不使用任何java代码,只使用普通的Maven资源