私はmavenからgradleへの移行を検討しています。現在の設定では、すべてのバージョン依存関係を定義するマスターpomがあります。Gradle Maven Bomのプロパティ
プロジェクト名は、マスター・POMであり、このようなスニペットがあります。今
<properties>
<commons-beanutils-version>1.9.1</commons-beanutils-version>
</properties>
:私たちはこれらの線に沿って何かを定義
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons-beanutils-version}</version>
</dependency>
.... 以降ダウンファイルの中をこれは今まで私が持っているものです:
plugins {
id "com.github.johnrengelman.shadow" version "1.2.4"
id "nebula.dependency-recommender" version "3.7.0"
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'nebula.dependency-recommender'
apply plugin: "com.github.johnrengelman.shadow"
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'
description = """best-service-ever"""
repositories {
mavenLocal()
maven { url 'https://repo.server.com/nexus/content/groups/public'
credentials {
username 'username'
password nexusPassword
}
}
mavenCentral()
jcenter()
}
dependencyRecommendations {
mavenBom module: 'biz.company.name:master-pom:1.0.0-SNAPSHOT'
}
dependencies {
... some dependencies
compile 'biz.company.name:db-schema'
}
この時点で、バージョンna med $ {db-version}とbuild-mavenから正しく定義されたものを使用してください。問題は、そのバージョンを特定のバージョンで上書きする必要があることです。
私はgradle.propertiesに値を入れてみましたが、それとの問題があります。演算として - それが解釈するため
デシベルバージョンは、のGradleによってサポートされていません。私が代わりに動作しているようです
DB_VERSION = 0.0.1700
として値を定義しようとしたが、どのようにそれは$ DB-バージョン値が上書きされますので、私はそれを設定します。私は明示的にバージョンを設定する必要はありません:すべての人工物にしたいと思います。
私の理想的なシナリオは、どちらか私は単にBOMファイルから来るのプロパティをオーバーライドすることが可能になります。
誰もこの問題に遭遇したことはありますか?または回避策がありますか?
BOMまたはPOMを意味しますか? –
GradleはこのパターンをBOMと呼んでいるようですが、基本的に依存関係を管理するために公開されているmaven pomファイルです。見積もり:https://gradle.org/migrating-a-maven-build-to-gradle/。 POM(BOM)の特殊なタイプを他のPOMにインポートすることができ、すべてのプロジェクトで一貫性のあるライブラリ名とバージョンを持つことができます。 "" " – csgeek
私は少し脆いイモでは動作するように見えるこのパターンを見つけました。 – csgeek