Jenkins中的Gradle项目依赖性错误

时间:2017-04-14 20:54:21

标签: java maven java-ee jenkins gradle

我有一个类似于

的项目结构
//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')
}

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

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

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

看起来像詹金斯,它无法找出相对路径。

我该如何解决这个问题?

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

1 个答案:

答案 0 :(得分: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目录中。

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