2017-01-24 33 views
1

Crafter 2.5.2でApprove/Publishを自動化したいと思います。基本的には、承認された静的コンテンツがあり、別のサービスによってリポジトリにドロップされ、特定のサイトの公開エンドポイントに公開したいと思います。Crafter CMSで承認/公開を自動化する必要があります

これを行うための簡単な設定はありません。そのため、ジョブを作成し、サイトの/config/site.xmlに設定する必要があると想定しました。例を見てみると、デフォルトサイトではcontent-monitoring.groovyが表示されているので、コードをコピーして更新しました。しかし、実行すると、CronJobContextをインポートできないというコンパイルエラーが発生します。

私はチケットを取得し、content-monitoring.groovyと同じ方法でCronJobContextを設定する必要があると想定しています。それが私がそのインポートを持っている理由です。これを修正するために何をすべきか、または私の出版を自動化するためのよりよい方法はすばらしいことでしょう。 org.codehaus.groovy.control.MultipleCompilationErrorsException:によって引き起こさ

の起動に失敗しました: 個人用サイト:/scripts/jobs/jobBulkPublish.groovy:2:クラスorg.craftercms.studio.api.v1を解決することができませんでした。ジョブ.CronJobContext @ 2行1列。 import org.craftercms.studio.api.v1.job.CronJobContext;

私のコードは、私は、問題はこれが私の展開サイトのコンテキストで実行されているということですかしら、私はもっとこの考えることを今

import org.apache.commons.lang.StringUtils; 
import org.craftercms.studio.api.v1.job.CronJobContext; 

def context = applicationContext 
def sercurityService = context.get("cstudioSecurityService") 
def deploy = context.get("cstudioDeploymentService") 
def job = context.get("cstudioDeployContentToEnvironmentJobs") 

def user = job.userName 
def pw = job.password 

def ticket = sercurityService.authenticate(user, pw) 
if (StringUtils.isNotEmpty(ticket)) { 
    CronJobContext cronJobContext = new CronJobContext(ticket) 
    CronJobContext.setCurrent(cronJobContext) 

    // publish for site = mysite environment= Production path = /static-assets/tie 
    logger.info("publishing mysite /static-assets/tie") 
    deploy.bulkGoLive("mysite","Production","/static-assets/tie") 

    CronJobContext.clear() 
} 
else { 
    logger.error("Not able to authenticate user for cron job.") 
} 

EDIT で、インポートが失敗した理由です。私はこれをCrafter Studioから実行し、サイトのプレビュー/デプロイされたエンジンではなく、公開することを目的としています。それが本当であれば、どのようにしてcraftercmsサイトで実行するはずの仕事を作成するのですか?私はwebapps/studio/default-site/scripts/jobs/every-5-minuteで私の爆発した戦争に自分のグルーヴィーなスクリプトを落として再起動し、ロードされて働いていた。しかし、スタジオのWARを上書きするのは悪い考えです。 tomcat/share/classes/studio/...のコンテキストファイルを更新し、そこにファイルを追加するなど、craftercms/default-siteコンテキストで実行するようにスクリプトを追加してジョブを設定するクリーンな方法はありますか?

答えて

0

これはスタジオの仕事なので、私はスタジオ戦争で仕事をするでしょう。私はこのための拡張ポイントがあるかどうかわかりません。

+0

さて、私は今のところそれをやっていますが、それを処理するよりクリーンな方法があることを望んでいます。 –

関連する問題