1

画像のサイズ変更などを処理する Media というプラグインがあります。

次の依存関係があります。

dependencies {
    compile group: 'org.ccil.cowan.tagsoup',
            name: 'tagsoup',
            version: '1.2'
    runtime group: 'org.codehaus.groovy.modules.http-builder',
            name: 'http-builder',
            version: '0.5.2'
    compile group: 'org.imgscalr',
            name: 'imgscalr-lib',
            version:'4.2'
    compile group: 'org.apache.tika',
            name:  'tika-core',
            version: '1.3'
} 

プラグインをスタンドアロン アプリケーションとして実行すると、すべて正常に動作します。

アプリケーションを作成し、インプレース プラグインの依存関係を BuildConfig.groovy ファイルに追加しました。

// there is grails.project.dependency.resolution closure above
grails.plugin.location.Media = "../../plugins/Media";

アプリケーションを実行すると、次のエラーが表示されます。

| Error Compilation error: startup failed:
/home/grails/plugins/Media/grails-app/controllers/frod/media/ImageServiceController.groovy: 14: unable to resolve class org.imgscalr.Scalr
@ line 14, column 1.
import org.imgscalr.Scalr
^

/home/grails/plugins/Media/src/groovy/frod/media/download/CachedContentDownloader.groovy: 3: unable to resolve class org.apache.http.HttpResponse
@ line 3, column 1.
import org.apache.http.HttpResponse
^

/home/grails/plugins/Media/src/groovy/frod/media/download/ContentDownloader.groovy: 3: unable to resolve class org.apache.http.HttpResponse
@ line 3, column 1.
import org.apache.http.HttpResponse
^

/home/grails/plugins/Media/src/groovy/frod/media/download/ContentDownloader.groovy: 4: unable to resolve class org.apache.http.client.HttpClient
@ line 4, column 1.
import org.apache.http.client.HttpClient
^

/home/grails/plugins/Media/src/groovy/frod/media/download/ContentDownloader.groovy: 6: unable to resolve class org.apache.http.impl.client.DefaultHttpClient
@ line 6, column 1.
import org.apache.http.impl.client.DefaultHttpClient
^

/home/grails/plugins/Media/src/groovy/frod/media/download/ContentDownloader.groovy: 5: unable to resolve class org.apache.http.client.methods.HttpGet
@ line 5, column 1.
import org.apache.http.client.methods.HttpGet
^

/home/grails/plugins/Media/src/groovy/frod/media/download/DownloadedContent.groovy: 3: unable to resolve class org.apache.http.HttpEntity
@ line 3, column 1.
import org.apache.http.HttpEntity
^

/home/grails/plugins/Media/src/groovy/frod/media/download/IContentDownloader.groovy: 3: unable to resolve class org.apache.http.HttpResponse
@ line 3, column 1.
import org.apache.http.HttpResponse
^

/home/grails/plugins/Media/src/groovy/frod/media/image/thumbnail/adjustment/crop/CropProcessor.groovy: 5: unable to resolve class org.imgscalr.Scalr
@ line 5, column 1.
import org.imgscalr.Scalr
^

/home/grails/plugins/Media/src/groovy/frod/media/image/thumbnail/adjustment/resize/IResizeAdjustment.groovy: 3: unable to resolve class org.imgscalr.Scalr
@ line 3, column 1.
import org.imgscalr.Scalr
^

/home/grails/plugins/Media/src/groovy/frod/media/image/thumbnail/adjustment/resize/IResizeAdjustment.groovy: 16: unable to resolve class Scalr.Mode
@ line 16, column 5.
public Scalr.Mode getMode();
^

/home/grails/plugins/Media/src/groovy/frod/media/image/thumbnail/adjustment/resize/IResizeAdjustment.groovy: 18: unable to resolve class Scalr.Method
@ line 18, column 5.
public Scalr.Method getMethod();
^
// and many others

ご覧のとおり、依存関係を解決できませんでした (http-builder imgscar-lib を確認できます)。

私はよくグーグルして、legacyResolveをtrueに設定しようとすることができることを発見しました。これらの設定ですべての組み合わせ (プラグイン、アプリ、プラグイン + アプリ) を試しましたが、同じ結果になりました - 上記のエラーです。

誰でもこれで私を助けることができますか?

私のgrailsのバージョンは2.2.3です

どうもありがとうございました

フランク

4

1 に答える 1

6

依存関係は Ivy によって解決されますが、これは利用可能な POM ファイルに依存します。インライン プラグインを使用する場合は、プラグイン ソースを指しているだけなので、これは当てはまりません。冗長にしてアプリの BuildConfig に依存関係を追加するかmaven-install、プラグインをパッケージ化してローカルの Maven キャッシュにコピーするスクリプトを使用できます。

maven-installアプリケーションで利用可能にする必要があるプラグインに変更を加えるたびに再実行する必要があるため、少し便利ではありませんが、実際のインストールプロセスに近いです. このようにローカルで公開されたプラグインを使用するにmavenLocal()は、 BuildConfig.groovy でコメントを外して、プラグインをリリースした場合と同様に依存関係を追加します。compile ':myplugin:0.1'

于 2013-08-14T17:53:16.653 に答える