首页 文章

Jenkins中的Gradle项目依赖性错误

提问于
浏览
1

我有一个类似的项目结构

//Directory structure
Root Folder/
   projectA/
      build.gradle
   projectB/
      build.gradle
      properties.gradle

现在,项目B依赖于项目A.

Project B的settings.gradle和build.gradle如下所示

settings.gradle

include   ':ProjectA'
project(':ProjectA').projectDir = new File(settingsDir, '../ProjectA')

build.gradle

dependencies{
   compile project(':ProjectA')
}

当我尝试在我的本地机器(Gradle版本3.2)上构建项目B时,它成功构建并且一切看起来都很好 .

当我尝试在jenkins中构建相同的项目(与我的本地相同的gradle版本)时,我收到错误

Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'default' not found.

它看起来像詹金斯,它无法弄清楚相对路径 .

我该如何解决这个问题?

在jenkins中有没有办法我可以忽略gradle中的依赖项并使用pre build编译ProjectA并将其放在类路径中?如果是这样我们怎么做呢?

1 回答

  • 0

    我能够通过添加一个我在构建文件中检查的jenkins属性来解决这个问题

    if (project.hasProperty('jenkins')) {
      dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
      }
    } else {
       dependencies {
        compile project(':ProjectA')
      }
    }
    

    因此,当我们在本地构建它时,因为我们没有传递属性,所以它能够编译ProjectA . 在Jenkins,构建作业中,在gradle命令中,我传递了以下 -Pjenkins clean build . 这将转到if条件并从projectA中提取jar并将其放入lib目录中 .

    这已经解决了我的问题,让我知道是否有更好的解决方案

相关问题