按存储库排除依赖项

时间:2017-02-14 14:19:23

标签: gradle build.gradle

有没有办法告诉Gradle排除特定依赖项的所有依赖项,这些依赖项将从给定的存储库中提取?

从存储库列表中删除该存储库是行不通的,因为我需要该存储库用于其他依赖项。但是对于一个特定的组,我想排除那些来自该存储库的依赖项。

类似的东西:

dependencies {
    compile <my_first_package>
    compile('my_second_package') {
        exclude repository.name:thirdPartyRepository
    }

}

1 个答案:

答案 0 :(得分:1)

查看源代码,如何排除依赖关系只有两种可能性,即exclude by module or a group。您还可以标记依赖项,而不是获取其传递依赖项:

<!-- Controller to get data from the Service or Factory ( pay attention to service injection here ) -->
app.controller('mainCtrl', ['$scope', 'dataService', function($scope,dataService) {

   dataService.getData().then(function(response) {
            $scope.response = response.data;
        }, function(error) {
            $scope.error = error;
            $scope.response = [];
        });
});

<!-- Factory to handle your data from REST or JSON -->
(function () {
    "use strict";
    app.factory("dataService",['$http', function($http){

    function getData (){  
       return $http.get('/scripts/controllers/fda/appSvc.json');
    }
    return {
        getData : getData
    };
}]);
})();

但就是这样,似乎没有办法根据存储库删除依赖项。您可以使用ResolutionStrategy强制使用版本,也可以查看是否有帮助您的用例。

作为一种解决方法,也许您可​​以使用不同的名称或版本重新打包错误的依赖项。或者您可以使用compile('my_second_package') { transitive = false } 并简单地添加您实际想要的所有传递依赖项作为声明的依赖项。