英文:
Gradle does not calling default tasks of other module
问题
我正在按照以下的项目结构进行工作:
root/
project-1/
build.gradle
project-2/
build.gradle
build.gradle
settings.gradle
root/settings.gradle 的内容如下:
include 'project-1'
include 'project-2'
project-1/build.gradle 的内容如下:
....
defaultTasks 'task1', 'task2', 'task3'
这里的 task3 会将 project-1 的构建文件复制到 project-2 的某个目录中。project-2 在构建时需要这些文件。
project-2/build.gradle 的内容如下:
...
dependencies {
compile 'xyx.jar'
compile 'pqr.jar'
implementation project(":project-1:defaultTasks")
}
当我构建 project-2 时,并不会构建 project-1 的 defaultTasks。
英文:
I am working project structure like below
root/
project-1/
build.gradle
project-2/
build.gradle
build.gradle
settings.gradle
root/settings.gradle is look like below
include 'project-1'
include 'project-2'
project-1/build.gradle is like below
....
defaultTasks 'task1','task2','task3'
Here task3 does copies build file of project-1 to one of directory of project-2. Project-2 need this files for building.
project-2/build.gradle is like below
...
dependencies {
compile 'xyx.jar'
compile 'pqr.jar'
implementation project(":project-1:defaultTasks")
}
When I build project-2, it does not build defaultTasks of project-1.
答案1
得分: 0
defaultTasks
仅是在不附加任何任务参数调用gradle
时执行的任务。
如果您希望在将项目用作另一个项目的依赖时执行其他任务,您需要将这些任务注册为相应项目构建任务(例如jar
或assemble
)的任务依赖项。
英文:
The defaultTasks
are just the tasks that are executed when gradle
is called without any tasks as arguments.
If you want additional tasks to be executed when a project is used as an dependency of another project, you need to register those tasks as task dependencies of the tasks that build the respective project (e.g. jar
or assemble
)
答案2
得分: 0
我可以使用Gradle的compileJava任务来解决这个问题。
project-1/build.gradle看起来像这样:
....
compileJava.dependsOn task3
task3.dependsOn task2
task2.dependsOn task1
现在project-2/build.gradle将会是这样:
...
dependencies {
compile 'xyx.jar'
compile 'pqr.jar'
compile 'project-1'
}
project-2会自动构建project-1,并执行所有所需的任务。
英文:
I can able to solve using gradle's compileJava task
project-1/build.gradle is look like
....
compileJava.dependsOn task3
task3.dependsOn task2
task2.dependsOn task1
and now project-2/build.gradle will look like
...
dependencies {
compile 'xyx.jar'
compile 'pqr.jar'
compile 'project-1'
}
project-2 automatically build project-1 with all desired tasks
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论