当前位置: 首页 > 知识库问答 >
问题:

如何在Gradle构建中使用jar文件提供的范围?

卓星波
2023-03-14

我需要在我的应用程序中使用亚马逊地图和亚马逊信息。

使用gradle,我没有成功添加具有“提供”范围的Amazon依赖项,因为它们需要:

JAR文件包含Amazon Maps API的存根实现。它不包含Maps API类的实际实现,因此您不应将JAR编译到您的应用程序中。

亚马逊支持提供的任何解决方案都不适合我。

如果有人成功与Gradle使用亚马逊地图或亚马逊信息,请分享您的版本。gradle文件在这里。

共有3个答案

宁卓
2023-03-14

Netflix现在有一个很棒的插件,gradle extra configurations插件。它提供了一个提供的和可选的范围。不需要更多的手动管道,并且在发布(例如发布到maven存储库)时也会生成所需的元数据。

苏昂雄
2023-03-14

我一直在使用的解决方案非常简单。您必须将以下代码添加到生成中。gradle文件:

apply plugin: 'eclipse'  // Eclipse users only

configurations {
    provided
}

sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}

eclipse.classpath.plusConfigurations += configurations.provided  // Eclipse users only

如果您不是Eclipse用户(我不是),您实际上不需要第一行和最后一行,正如您可能已经猜到的那样。

完成上述配置添加后,您可以简单地在依赖项部分中添加提供的依赖项以及任何常规编译依赖项:

dependencies {
    compile group: 'org.springframework', name: 'spring-core', version: '3.2.6.RELEASE'

    provided group: 'javax.servlet', name: 'servlet-api', version:'2.5'
    provided group: 'javax.servlet.jsp', name: 'jsp-api', version:'2.1'
}

希望这有帮助。一段时间以来,它一直在为我工作。

凌意
2023-03-14

在Gradle的2.12版本中,添加了compileOnly,以提供与提供的范围类似的功能。测试类路径中发生的事情有所不同。以下是发行说明中的相关引用和片段:

现在,您可以声明依赖项仅在编译时与Java插件结合使用。仅编译依赖项仅在源代码编译期间使用,不包括在运行时类路径中,也不暴露于依赖项目。这种行为类似于基于Maven的构建中可用的“提供”范围。然而,与Maven提供的依赖项不同,Gradle中的纯编译依赖项不包括在测试类路径中。

仅编译依赖项应分配给相关源集的“仅编译”配置。

dependencies {
    compileOnly 'javax.servlet:servlet-api:2.5'
}
 类似资料:
  • 问题内容: 我正在使用gradle构建的开源项目。我想生成一个(project)-sources.jar文件,可以将其加载到我的IDE(IntelliJ IDEA)中并通过该项目进行调试。我知道如何生成文件(如果可以生成的话)。 我浏览了该项目可用的gradle任务,但没有一个可以生成source jar文件。 为该项目生成源jar文件的最简单方法是什么? 将源添加到包含已编译的类文件的jar文件

  • 我刚刚开始玩适用于Android的gradle构建系统。 然而,我无法构建我的一个项目。它取决于libs/文件夹中的jar。 由于jar文件中的所有类都丢失了,所以在编译bug任务中执行gradle构建失败。 这是一个图书馆项目!这是我的身材。gradle文件: 我错过了什么明显的东西吗? 戈德陈

  • 我有一个通用库的自定义构建版本,我希望我的Gradle构建使用它,而不是从任何存储库下载标准版本。

  • 我正在与一个开源项目一起工作,这个项目是用Gradle构建的。我想生成一个(project)-sources.jar文件,我可以将该文件加载到我的IDE(IntelliJ IDEA)中,并通过项目进行调试。我知道如何加载文件,如果我可以生成它。 我查看了该项目的可用gradle任务,没有一个生成sources jar文件。 为这个项目生成sources jar文件的最简单的方法是什么? 将源代码添

  • 是否有教程解释如何正确创建Java Gradle项目并构建。jar文件? 当我创建Java项目并添加Gradle:File时- 或 我的项目在这一点上是如此的混乱,也许我应该创建另一个项目,然后将Main.class和Gradle的依赖关系从旧项目复制/粘贴到新项目上。 如果这是我的最佳选择,那么这次我如何正确创建项目?

  • 问题内容: 我有一个文件夹结构 当我运行以下命令“ jar cvf asd.jar * .class”时,它将为jar提供所有类文件。但是没有生成文件夹结构。所有的类文件都必须在“ com.cdy / ws”下,但是所有的类都在同一级别的META-INF中。谁能告诉我生成包结构的命令是什么? 谢谢 问题答案: 您需要在文件的 根目录 开始创建JAR 。 因此,例如: 假定包含该目录。 仅供参考,如