2

全て、

私は、カスタマイズのない、すぐに使用できる単純な Grails プロジェクトを持っています。シンプルなページ、シンプルなコントローラー、シンプルなサービスがあります。問題なし。

問題: API を介して独自のソフトウェア プラットフォームと対話したいと考えています。そのためには、内部の jar アーティファクトを参照する必要があります。内部/外部の依存関係を管理する独自の Ivy リポジトリがあります。内部リポジトリを指すように BuildConfig.groovy を構成できませんでした。これらの指示に基づいて試したことは次のとおりです

/*
 * Configure our resolver.
 */
def libResolver = new org.apache.ivy.plugins.resolver.URLResolver()
['libraries', 'builds'].each {
    libResolver.addArtifactPattern(
            "http://my.repository/${it}/" +
            "[organisation]/[module]/[revision]/[type]s/[artifact].[ext]")

    libResolver.addIvyPattern(
            "http://my.repository/${it}/" +
            "[organisation]/[module]/[revision]/[type]s/[artifact].[ext]")
}

libResolver.name = "my-repository"
libResolver.settings = ivySettings

resolver libResolver

これは、問題のある行を指すことに失敗します

resolver libResolver

調査したところ、これに関する記事がいくつか見つかり、問題のある行が削除され、さらに多くのエラーが発生しました。問題のある行をさらに削除しましたが、エラーはありませんでしたが、「依存関係」セクションで依存関係を指定してもまったく解決しませんでした。

質問:

依存関係を管理するために、内部のアイビー リポジトリを使用して grails プロジェクトを正常に構成できた人はいますか?

4

1 に答える 1

1

ここにあります。

  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
        }
}
于 2012-12-07T22:54:09.653 に答える