我的应用程序被打包为 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
, libs
和 tools
.这允许您随意命名和版本依赖项,但您必须自己维护它们: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/