【问题标题】:Need to automate an approve/publish in Crafter CMS需要在 Crafter CMS 中自动批准/发布
【发布时间】:2017-01-24 16:08:56
【问题描述】:

我想在 Crafter 2.5.2 中自动执行批准/发布。基本上,我有一些经过批准的静态内容通过单独的服务放入存储库,我想将其推送到特定站点的发布端点。

我看不到任何通过简单配置来做到这一点的方法,所以我认为我应该创建一个作业并在我的站点的 /config/site.xml 中配置它。环顾四周,我在默认站点中看到 content-monitoring.groovy,因此我复制并更新了代码。但是,当它运行时,我收到一个关于无法导入 CronJobContext 的 groovy 编译时错误。

我假设我需要获得一张票并以与 content-monitoring.groovy 相同的方式设置 CronJobContext,这就是我进行该导入的原因。任何我应该做些什么来解决这个问题或更好地自动化我的发布的建议都会很棒。

原因:org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败: mysite:/scripts/jobs/jobBulkPublish.groovy: 2: 无法解析类 org.craftercms.studio.api.v1.job.CronJobContext @ 第 2 行,第 1 列。 导入 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.")
}

编辑 现在我想到了更多,我想知道问题是否在于它在我部署的站点上下文中运行,这就是导入失败的原因。我希望它从 Crafter Studio 运行,而不是在我网站的预览/部署引擎中运行,因为它的目的是发布。如果这是真的,我将如何创建一个应该在craftercms 网站上运行的工作?我能够将我的 groovy 脚本放入 webapps/studio/default-site/scripts/jobs/every-5-minutes 的爆炸式战争中,然后重新启动,它就被加载并工作了。但是,我认为覆盖工作室 WAR 是一个坏主意。是否有一些干净的方法可以添加脚本并配置作业以在 craftercms/default-site 上下文中运行,例如更新 tomcat/share/classes/studio/... 中的上下文文件并在那里添加文件?

【问题讨论】:

    标签: content-management-system crafter-cms


    【解决方案1】:

    由于这是一个 Studio 工作,我会将这个工作放在 Studio 战争中。不知道这个有没有扩展点。

    【讨论】:

    • 是的,我现在已经这样做了,但我希望有一种更清洁的方法来处理它。
    猜你喜欢
    • 2014-09-11
    • 2019-03-04
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    相关资源
    最近更新 更多