为了账号安全,请及时绑定邮箱和手机立即绑定

Gradle 与 Maven 中的依赖路径差异

Gradle 与 Maven 中的依赖路径差异

凤凰求蛊 2023-08-09 15:43:00
我有一个关于 Gradle 依赖机制与 Maven 依赖机制之间的区别的问题:我的项目结构如下,应用程序依赖于common:project    common          conf         src            java            test    app          conf         src            java             test应用程序中的 build.gradle是:dependencies {    compile project(':common')    ....}sourceSets {    main {        java {            srcDir 'src/java'        }        resources {            srcDir 'conf'        }    }    test {        java {            srcDir 'src/test'        }    }}当我使用ant dist时。类路径包含 /common/conf 文件夹,其中包含大量配置文件。当我使用 Gradle 构建时。类路径包含 build/common.jar 而不是 /common/conf。有没有办法让 Gradle 做与 Maven 相同的事情(使类路径包含 /common/conf 而不是 build/common.jar)?因为当我在应用程序下运行测试用例时,应用程序将读取 common/conf 文件夹下的 xml 配置文件,但应用程序无法从 jar 文件中读取 xml。因为现在我的代码无法处理来自 Jar 的 inputStream。是否使用:res.getFile() 其中 res 是对 xml 配置文件的引用。我是 Maven 和 Gradle 的新手。有人可以帮忙吗?万分感激!
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如果您想要实现的目标是在运行时从 Jar 中获取这些 xml 文件,那么只需将您的 XML 文件添加到/src/main/resources.

该目录中的所有内容都会自动添加到 Jar 文件中,并可作为类路径资源使用。Maven 和 Gradle 都使用约定优于配置,其中约定将类路径资源放入其中,/src/main/resources就像将应用程序 Java 代码放入 中/src/main/java,将单元测试类路径资源放入 中/src/test/resources,并将单元测试 Java 代码放入/src/test/java.

遵循 Mavan/Gradle 约定也将使您的配置更简单。与 Ant 不同的是,一切都需要配置。

如果您的 xml 文件位于common.jar(通过将 xml 放入common/src/main/resources,并且 common 位于 for 的类路径上app,那么您应该能够通过类加载器读取这些文件。例如SomeClassFromCommon.class.getClassLoader().getResourceAsStream("somefile.xml")


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信