Java 来自源的渐变非托管依赖项
我需要在gradle中配置对另一个项目(Java 来自源的渐变非托管依赖项,java,gradle,dependency-management,Java,Gradle,Dependency Management,我需要在gradle中配置对另一个项目(P1)的源的依赖项。不幸的是,不可能获得上述项目的jar,也不可能将其配置为使用gradle(公司限制) 现在,我正在编写一个新的java项目(Pnew),它依赖于P1。这两个项目目前都在开发中(甚至我的工作可能包括对P1的更改) 通过配置额外的源集 sourceSets { main { java { srcDir '../../P1/src' } } } 我设法摆脱了依赖于P1的编译错误。但这没有帮助。自然地,P1
P1
)的源的依赖项。不幸的是,不可能获得上述项目的jar,也不可能将其配置为使用gradle(公司限制)
现在,我正在编写一个新的java项目(Pnew
),它依赖于P1
。这两个项目目前都在开发中(甚至我的工作可能包括对P1
的更改)
通过配置额外的源集
sourceSets {
main {
java {
srcDir '../../P1/src'
}
}
}
我设法摆脱了依赖于P1
的编译错误。但这没有帮助。自然地,P1
的所有类都成为了Pnew
的一部分,这当然不是本意
我的目标是:
dependencies {
compile fileTree(dir: '../../P1/src/', include:'*.java')
}
但这似乎不起作用
如何配置这种依赖关系?您可以尝试以下操作:
include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
dependencies {
...
compile project(':P1')
...
}
在具有Pnew
的build.gradle
的同一目录中包含名为settings.gradle
的文件。在该文件中输入以下内容:
include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
dependencies {
...
compile project(':P1')
...
}
其中path是指向P1 build.gradle
文件的相对路径
现在在您的pnewbuild.gradle中添加以下内容:
include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
dependencies {
...
compile project(':P1')
...
}
有了它,您可以使用P1作为依赖项来编译您的Pnew项目
**编辑**
如果项目不是gradle项目,并且无法从项目生成jar,请尝试以下操作:
dependencies {
compile files("relative/path/to/classes/dir")
}
不幸的是,P1没有(并且明年)将不在gradle控制之下。因此,我相信这是行不通的。你对“类”依赖的“编辑”告诉了我问题的根源:我需要能够编译P1。这需要一些信息(通常存储在构建脚本中)。因此,我需要开始以不同的方式思考。。。。最后,我被允许将P1置于gradle控制之下(我简直不敢相信我听到的!!!)