gkn*_*uth 3 gradle build.gradle
我得到了一个A
需要从另一个项目访问类文件的项目B
。更准确地说,A
只需要从树的B/ejb/C/src
部分编译的类B/
:
B/ejb/C/src/com/company/admin/Foo.java
B/ejb/C/src/com/company/admin/FooHome.java
B/ejb/C/src/com/company/admin/FooBean.java
B/ejb/NOTNEEDED/src/com/company/data/...
Run Code Online (Sandbox Code Playgroud)
A
之前拥有该项目的人使用 JBuilder 并包含在源定义中指向并行项目的B/ejb/C/src
. 该A
项目构建了一个 jar,其中包含从另一个树编译的类。我试图弄清楚如何使用 Gradle 做到这一点。我想B/build.gradle
在B
项目中创建一个从这些源编译B-C-version.jar
的.class
文件:
B/ejb/C/src/com/company/admin/Foo.java
B/ejb/C/src/com/company/admin/FooHome.java
B/ejb/C/src/com/company/admin/FooBean.java
Run Code Online (Sandbox Code Playgroud)
然后我将发布到 Maven 并从A
项目访问。
即,B-C-version.jar
理想情况下只有这些类:
com/company/admin/Foo.class
com/company/admin/FooHome.class
Run Code Online (Sandbox Code Playgroud)
但如果B-C-version.jar
有这些类:
com/company/admin/*.class
Run Code Online (Sandbox Code Playgroud)
那也可以。我怎样才能build.gradle
在B
项目中使用 a 来做这样的事情?
您可以简单地声明一个自定义Jar
任务,如
task cJar(type: Jar) {
baseName = project.name + '-C'
from sourceSets.main.output
include 'com/company/admin/Foo.class', 'com/company/admin/FooHome.class'
}
Run Code Online (Sandbox Code Playgroud)
或者您可以为您的 api 制作一个专用的源集,然后您可以从其他 B 代码和 A 代码中使用该源集,然后您无需使用包含并更新包含(如果您需要添加文件),但您只需放置它们在源集的源文件夹中,你就完成了,就像
sourceSets { c }
task cJar(type: Jar) {
baseName = project.name + '-C'
from sourceSets.c.output
}
Run Code Online (Sandbox Code Playgroud)
然后,您还可以单独声明依赖项并以传递方式获取正确的依赖项等等。但在你的情况下,这可能是矫枉过正。
归档时间: |
|
查看次数: |
1119 次 |
最近记录: |