繁体   English   中英

Gradle vs Maven中的依赖路径差异

Dependencies path difference in Gradle vs in Maven

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个关于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)?

因为当我在app下运行测试用例时, app会读取common / conf文件夹下的xml配置文件,但是app无法从jar文件读取xml。 因为现在我的代码无法处理Jar中的inputStream。

是否使用:

res.getFile() 

其中res是对xml配置文件的引用。

我是Maven和Gradle的新手。 有人可以帮忙吗? 万分感激!

1 个回复

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

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

遵循Mavan / Gradle约定也会使您的配置更简单。 与Ant不同,后者需要配置所有内容

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

1 pom依赖在Gradle中失败(在Maven中可以)

我正在为JBoss 7.1编写一个独立的EJB客户端,并按照建议使用以下依赖项: 这在Maven中按预期工作,但是在Gradle中使用时,如下所示: 它失败并显示: 找不到group:org.jboss,模块:jboss-remote-naming,版本:1.0.2.F ...

2 Gradle / Maven:如何使用开发中的依赖项?

内容: 我正在开发一个Gradle项目,该项目依赖于我创建的外部库。 目前,我对project(':lib')一个简单的依赖。 但是,这还不够,我需要将库作为独立的组件发布和分发,进行版本化和记录。 我将安装Apache Archiva并将其发布到内部Maven存储库,因此我可以 ...

3 依赖vs神器gradle

在这里阅读配置文档时,我碰到了这一行 Configuration是包含所有依赖项的FileCollection的实例(另请参见Configuration.getAllDependencies() ),但不包含工件 我只是无法理解artifacts和dependencies有何不 ...

4 Gradle不会解决依赖(Maven会)

我的项目通过gradle配置了依赖项。 我想添加以下依赖项: 哪个可以在以下存储库中找到(我已添加到我的build.gradle中): 但是,当我这样做时,我收到以下错误: 我可以看到jar实际上是在存储库中,但Gradle并没有在正确的位置寻找它,原因我不知道。 为 ...

7 在Maven中添加非类路径依赖项

我想向我的maven项目中添加一个依赖项,以便Maven可以解决该依赖项,但不能将其添加到类路径中。 例如 在这种情况下,依赖关系是FAT可执行jar文件,我想从我的Mojo中运行它。 我不希望该jar文件的内容污染我的mojo的类路径。 我只希望将其视为二进制文件,以便可以在我的mojo中查找 ...

8 “gradle 依赖项”与 Gradle 缓存的差异

我试图了解在项目上运行“gradle dependencies”时显示的依赖项与最终在“~/.gradle/cache”中显示的依赖项的区别 这是我在做什么: 我以下面的java项目为例:https ://github.com/spring-guides/gs-gradle/tree/master ...

9 Gradle项目中的Maven依赖

我正在用gradle开发一个项目。 到目前为止,我的构建文件几乎为空: 我的项目取决于Maven项目。 正是这个项目: http : //git.eclipse.org/c/bpmn2/tree/org.eclipse.bpmn2 我已经将该项目克隆到工作区中,但是我不知道在b ...

10 从Maven加载Gradle依赖关系

我是新来的。 我已经看到了一些有关Java依赖关系的示例,例如以下示例,但我的项目将只是一个zip文件。 我只想下载压缩文件。 在上面的示例中,它将自动下载jar文件。 但是,如果我的Maven存储库包含关于该软件包的pom.xml中提到的zip,则它不会下载我的zip文件。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM