我的项目布局就像这样
A
├── B
│ ├── build.gradle
│ └── Example-0.0.1.jar
├── build.gradle
├── C
│ ├── build.gradle
│ └── src
│ └── main
│ └── java
│ └── com
│ └── sample
│ └── Hello.java
└── settings.gradle
现在,B使用maven-publish将Example-0.0.1.jar发布到本地maven档案(即〜/ .m2 / repositories)
C是一个java项目。 Hello.java文件使用Example jar文件。
我正在使用gradle 2.2来构建这个项目。 我有
$ cat A/build.gradle
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
}
和
$ cat A/settings.gradle
include ':B'
include ':C'
和
$ cat A/B/build.gradle
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
groupId 'com.example'
artifactId 'abc'
version '0.0.1'
artifact 'Example-0.0.1.jar'
}
}
}
和
$ cat A/C/build.gradle
apply plugin: 'java'
apply plugin: 'maven'
dependencies {
compile project(':B')
compile 'com.example:abc:0.0.1'
}
现在,每当我运行任何gradle命令时,我都会收到以下错误:
$ gradle tasks
Execution failed for task ':tasks'.
> Could not determine the dependencies of task ':C:compileJava'.
有没有任何方法可以在构建C之前运行任务B:publishToMavenLocal以包含jar?
答案 0 :(得分:0)
我也遇到了同样的问题。 找出实现此目的的方法。我在父build.gradle文件中添加了以下内容,现在一切正常。
project(':project-B')。tasks.compileJava.dependsOn project(':project-A')。tasks.install
所以现在当我执行构建时,将Project-A的工件安装到本地存储库,然后Project-B可以从那里获取它们。祝你好运!