gpt4 book ai didi

java - 如何配置gradle来解决依赖关系

转载 作者:行者123 更新时间:2023-12-02 00:54:08 24 4
gpt4 key购买 nike

我正在尝试将我的 MAVEN 构建移动到 gradle因此我需要解决以下问题:

项目:

  • 应用程序(该应用程序将创建一个 fatjar)

插件(应生成单个 jar 文件,但不会生成胖 jar!)

  • utils(需要:jarX、jarY、jarZ)
  • 数据(需要:utils、jarX、jarY)
  • 控件(需要:数据、utils、jarY)

我解决的是为每个插件创建一个jar(但我必须完全定义它的依赖项,这实际上是gradle的工作

所以我所做的是创建 jar 文件,将它们手动复制到存储库并声明对这些文件的依赖关系...

所以我期望的是,我只需要告诉应用程序需要控件,因为控件已经包含所需的任何内容(始终包含下面内容的依赖项)

我想我必须定义一个项目(是的,我阅读了 gradle 的帮助页面,但我无法解决)

所以现在我在每个插件中都有settings.gradle,但是我读到的内容是错误的。我的根目录中应该只有一个 settings.gradle。

根目录:settings.gradle:

include ':application', ':controls', ':data', ':util'

根目录:build.gradle

buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.glazedlists:glazedlists:1.11.0'
classpath 'org.jooq:jooq:3.12.1'
classpath 'org.controlsfx:controlsfx:8.40.12'
}
}

allprojects {
repositories {
google()
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

每个插件都有:构建.gradle

plugins {
id 'java-library'
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

但这也不起作用......

提前致谢

最佳答案

假设您需要进行多项目设置,请执行以下操作:

设置.gradle

rootProject.name = 'mvn2Gradle'
include ':application', ':controls', ':data', ':util'

构建.gradle

allprojects {
repositories {
google()
jcenter()
}
}

subprojects {
apply plugin: 'java'

ext {
jarYVersion = '1.x'
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
implementation "org.example:jarY:$jarYVersion" // Every subproject gets this dependency
}
}

wrapper { // Run this task once before you start building
gradleVersion = '5.6.3'
distributionType = Wrapper.DistributionType.ALL
}

utils:build.gradle

plugins {
id 'java-library'
}

ext {
jarXVersion = '1.x'
jarZVersion = '1.x'
}

dependencies {
implementation "org.example:jarX:$jarXVersion"
api "org.example:jarZ:$jarZVersion" // "api" because none of the other projects depends on this jar
}

数据:build.gradle

plugins {
id 'java-library'
}

dependencies {
implementation project(':utils') // Also inherits "jarX"
}

控件:build.gradle

plugins {
id 'java-library'
}

dependencies {
implementation project(':data') // Also inherits "project:utils"
}

应用程序:build.gradle

plugins {
id 'application'
}

application {
mainClassName 'my.package.Main'
}

dependencies {
implementation project(':controls')
}

关于java - 如何配置gradle来解决依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com