Gradle - 不要在包含的依赖项名称中指定版本

标签 gradle

我的应用程序被打包为 ear,我使用了 earlib 和部署配置。但是,对于所有这些依赖项,jar 名称中都提到了版本。
例如,如果我提到如下依赖项,

earlib 'com.xyz:abc:1.0.1'

在生成的耳朵中,我可以看到 jar 名称为 abc-1.0.1.jar,但我想将它简单地包含为 abc.jar。

最佳答案

声明一个没有版本的依赖项

Gradle 让你 declare a dependency without a version但你必须定义一个 dependency constraint ,这基本上是您的依赖版本的定义。这通常用于大型项目:

dependencies {
    implementation 'org.springframework:spring-web'
}

dependencies {
    constraints {
        implementation 'org.springframework:spring-web:5.0.2.RELEASE'
    }
}

声明一个动态版本

另一种选择是declare a dynamic version通过使用加号运算符。这允许您在打包应用程序时使用依赖项的最新版本。这样做有潜在的危险,因为它有破坏应用程序的风险:
apply plugin: 'java-library'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework:spring-web:5.+'
}

声明文件依赖

如果您根本不想依赖二进制存储库而是自己提供依赖项,则可以 declare a file dependency ,来自目录 ant , libstools .这允许您随意命名和版本依赖项,但您必须自己维护它们:
configurations {
    antContrib
    externalLibs
    deploymentTools
}

dependencies {
    antContrib files('ant/antcontrib.jar')
    externalLibs files('libs/commons-lang.jar', 'libs/log4j.jar')
    deploymentTools fileTree(dir: 'tools', include: '*.exe')
}

关于Gradle - 不要在包含的依赖项名称中指定版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49839110/

相关文章:

android - gradle - Android Studio 构建速度太慢的 multidex 应用程序

android - 我无法构建项目(Android studio)ProjectConfigurationException

Android studio - 如何使用 gradle 中的可执行 jar 文件

android - 使用 Maven 存储库导入

java - 从gradle中的jar中省略类文件

java - 如果afterClass方法失败,Gradle测试报告将显示测试失败

java - Gradle 子项目对共享代码的依赖

java - 当我包含 header 时,Gradle 将不会构建可执行文件

unit-testing - 如何在不在同一包中的gradle中执行多个测试类?

java - 通过命令行运行spring boot应用的非主类