Gradle 来自源的非托管依赖
Gradle non-managed dependency from source
我需要在 gradle 中配置对另一个项目 (P1
) 的 source 的依赖。不幸的是,无法获得上述项目的 jar,也无法将其配置为使用 gradle(公司限制)。
现在,我正在编写一个依赖于 P1
的新 java 项目 (Pnew
)。这两个项目目前都在开发中(甚至我的工作可能包括 P1
中的更改)。
通过配置额外的 sourceSet
sourceSets {
main {
java {
srcDir '../../P1/src'
}
}
}
我设法摆脱了我依赖 P1
的编译错误。但这没有帮助。 P1
的类自然全部变成了Pnew
的一部分,这当然不是本意。
我的目标是:
dependencies {
compile fileTree(dir: '../../P1/src/', include:'*.java')
}
但这似乎不起作用。
如何配置这样的依赖?
您可以尝试以下方法:
在您拥有 Pnew
的 build.gradle
的同一目录中包含一个名为 settings.gradle
的文件。在此文件中放入以下内容:
include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
其中 path 是 P1 build.gradle
文件的相对路径。
现在在你Pnew build.gradle
添加以下内容:
dependencies {
...
compile project(':P1')
...
}
有了这个,您可以使用 P1 作为依赖项来编译您的 Pnew 项目。
** 编辑 **
如果该项目不是 gradle 项目并且您不能从您的项目生成 jar,那么试试这个:
dependencies {
compile files("relative/path/to/classes/dir")
}
我需要在 gradle 中配置对另一个项目 (P1
) 的 source 的依赖。不幸的是,无法获得上述项目的 jar,也无法将其配置为使用 gradle(公司限制)。
现在,我正在编写一个依赖于 P1
的新 java 项目 (Pnew
)。这两个项目目前都在开发中(甚至我的工作可能包括 P1
中的更改)。
通过配置额外的 sourceSet
sourceSets {
main {
java {
srcDir '../../P1/src'
}
}
}
我设法摆脱了我依赖 P1
的编译错误。但这没有帮助。 P1
的类自然全部变成了Pnew
的一部分,这当然不是本意。
我的目标是:
dependencies {
compile fileTree(dir: '../../P1/src/', include:'*.java')
}
但这似乎不起作用。
如何配置这样的依赖?
您可以尝试以下方法:
在您拥有 Pnew
的 build.gradle
的同一目录中包含一个名为 settings.gradle
的文件。在此文件中放入以下内容:
include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
其中 path 是 P1 build.gradle
文件的相对路径。
现在在你Pnew build.gradle
添加以下内容:
dependencies {
...
compile project(':P1')
...
}
有了这个,您可以使用 P1 作为依赖项来编译您的 Pnew 项目。
** 编辑 **
如果该项目不是 gradle 项目并且您不能从您的项目生成 jar,那么试试这个:
dependencies {
compile files("relative/path/to/classes/dir")
}