Gradle root项目取决于子项目构建

时间:2018-06-05 12:43:30

标签: gradle multi-project

如何提及子项目应该在根项目之前构建。

settings.gradle

中的

rootProject.name = 'loginmodule'
include 'servicebundle'
include 'webbundle'
include 'webredirectbundle'

当我尝试这个build dependson subprojects:build时,它会给出像循环依赖这样的错误。 目前在我的根项目build.gradle中捆绑所有子项目,如下所示

task createESA(type: Zip, dependsOn: generateSubSystemFile) {
    subprojects.each { dependsOn("${it.name}:build") }
    from subprojects.collect { "${it.buildDir}/libs" }
    from (subsystemFile) {
        into 'OSGI-INF'
    }
    from ('resources/OSGI-INF') {
        into 'OSGI-INF'
    }
    baseName project.name
    extension 'esa'
}

build.finalizedBy createESA

我正在使用gradle clean build来构建项目。

还有更好的方法吗?我只想在根项目构建之前先构建所有子项目。

1 个答案:

答案 0 :(得分:0)

subprojects*.build任务取决于build,它会说任务都无法运行,直到所有子项目中的所有build任务都运行完毕。然后,声明根项目的createESA任务取决于task createESA(type: Zip, dependsOn: subprojects*.build) { // etc... } build.dependsOn createESA

const parseString = require('react-native-xml2js').parseString;

export const fetchData = () => {
  return (dispatch) => {
    dispatch({ type: FETCH_START });

    fetch('https://.../file.xml')
      .then(response => response.text())
      .then((response) => {
        parseString(response, function(err, result) {
          fetchSuccess(dispatch, result);
        });
      }).catch((err) => {
        fetchError(dispatch, err);
      });
  };
};