如何使用用于grails依赖关系管理的corporate Ivy实例来解析内部构件

如何使用用于grails依赖关系管理的corporate Ivy实例来解析内部构件,grails,ivy,dependency-management,Grails,Ivy,Dependency Management,全部, 我有一个简单的开箱即用的Grails项目,没有任何定制。我有一个简单的页面,简单的控制器,简单的服务;没问题 问题: 我想通过API与我们自己的软件平台进行交互。为此,我需要参考我们的内部jar工件。我们有自己的常春藤知识库,在那里我们管理内部/外部依赖关系。我无法将BuildConfig.groovy配置为指向内部存储库。这是我尝试的基础 这无法指向冒犯的界线 resolver libResolver 通过研究,我只找到了几篇关于这方面的文章,删除了冒犯性的一行,得到了更多的错误。删

全部,

我有一个简单的开箱即用的Grails项目,没有任何定制。我有一个简单的页面,简单的控制器,简单的服务;没问题

问题: 我想通过API与我们自己的软件平台进行交互。为此,我需要参考我们的内部jar工件。我们有自己的常春藤知识库,在那里我们管理内部/外部依赖关系。我无法将BuildConfig.groovy配置为指向内部存储库。这是我尝试的基础

这无法指向冒犯的界线

resolver libResolver
通过研究,我只找到了几篇关于这方面的文章,删除了冒犯性的一行,得到了更多的错误。删除了更多有问题的行,没有错误,但是在“依赖项”部分指定我的依赖项并没有解决它们

问题:

是否有人成功地将grails项目配置为内部ivy repo以进行依赖关系管理?

在这里

  grails.project.dependency.resolution = {
     ...

        repositories {
            inherits true // Whether to inherit repository definitions from plugins
            resolver XXXLibResolver(dependencyManager)
            grailsPlugins()
            ...
        }

    ....

    def DependencyResolver XXXLibResolver(IvyDependencyManager dependencyManager) {
        DefaultRepositoryCacheManager nocache = new DefaultRepositoryCacheManager();
        nocache.setUseOrigin(true);
        nocache.name = "nocache";

        dependencyManager.ivySettings.addRepositoryCacheManager(nocache);

        def XXXHome = System.getenv("XXX_HOME")
        if (XXXHome) {
            XXXHome = new File(XXXHome).absolutePath
            def fileSystemResolver = new FileSystemResolver()
            fileSystemResolver.cache = nocache.name
            fileSystemResolver.local = true
            fileSystemResolver.name = 'XXX-lib-repo'
            fileSystemResolver.addIvyPattern("${XXXHome}/libraries/[organisation]/[module]/ivys/ivy-[revision].xml")
            fileSystemResolver.addArtifactPattern("${XXXHome}/libraries/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]")
            fileSystemResolver.settings = dependencyManager.ivySettings
            return fileSystemResolver
        }
}

阿拉姆,谢谢你的回答。我将此代码节放置在何处
def DependencyResolver XXXLibResolver(IvyDependencyManager dependencyManager){..}
?但这并没有回答有关ivy存储库实例的原始问题。这确实可以解析本地文件系统中的文件,但如何指向远程Ivy repo?def DependencyResolver XXXLibResolver(IvyDependencyManager dependencyManager){..}在grails.project.dependency.resolution scope===是的,我在本地文件系统中有Ivy存储库的副本。我相信您可以轻松地从FileSystemResolver()切换到org.apache.ivy.plugins.resolver.URLResolver(),只需阅读文档即可。
  grails.project.dependency.resolution = {
     ...

        repositories {
            inherits true // Whether to inherit repository definitions from plugins
            resolver XXXLibResolver(dependencyManager)
            grailsPlugins()
            ...
        }

    ....

    def DependencyResolver XXXLibResolver(IvyDependencyManager dependencyManager) {
        DefaultRepositoryCacheManager nocache = new DefaultRepositoryCacheManager();
        nocache.setUseOrigin(true);
        nocache.name = "nocache";

        dependencyManager.ivySettings.addRepositoryCacheManager(nocache);

        def XXXHome = System.getenv("XXX_HOME")
        if (XXXHome) {
            XXXHome = new File(XXXHome).absolutePath
            def fileSystemResolver = new FileSystemResolver()
            fileSystemResolver.cache = nocache.name
            fileSystemResolver.local = true
            fileSystemResolver.name = 'XXX-lib-repo'
            fileSystemResolver.addIvyPattern("${XXXHome}/libraries/[organisation]/[module]/ivys/ivy-[revision].xml")
            fileSystemResolver.addArtifactPattern("${XXXHome}/libraries/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]")
            fileSystemResolver.settings = dependencyManager.ivySettings
            return fileSystemResolver
        }
}