Java Gradle与Maven中的依赖路径差异
关于Gradle依赖机制和Maven依赖机制之间的区别,我有一个问题: 我的项目结构如下,app依赖于common:Java Gradle与Maven中的依赖路径差异,java,maven,gradle,jar,Java,Maven,Gradle,Jar,关于Gradle依赖机制和Maven依赖机制之间的区别,我有一个问题: 我的项目结构如下,app依赖于common: project common conf src java test app conf src java test 而应用程序中的build.gradle是: dependencies {
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时。类路径包含build/common.jar而不是/common/conf
有没有办法让Gradle做和Maven一样的事情(让类路径包含/common/conf而不是build/common.jar)
因为当我在app下运行测试用例时,app将读取common/conf文件夹下的xml配置文件,但是app无法从jar文件读取xml。因为现在我的代码无法处理来自Jar的inputStream
它是否使用:
res.getFile()
其中res是对xml配置文件的引用
我对Maven和Gradle都是新手。有人能帮忙吗?真的很感激 如果您试图实现的是在运行时从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不同,Ant需要配置所有内容
如果您的xml文件位于
common.jar
(将xml放入common/src/main/resources
,并且common位于app
的类路径上,那么您应该能够通过类加载器读取这些文件。例如someclassfrommon.class.getClassLoader().getResourceAsStream(“somefile.xml”)
非常感谢您的帮助。这有助于我更好地理解底层内容!