我们的Jenkins CI服务器在我们的Github存储库中创建标签时会自动检测,部署和构建标签.
这可能吗?
我在REST上阅读的所有文章和书籍都重复了为您的超媒体响应添加"自我"重要链接的重要性,但他们对原因和用例都很清楚.
为什么要添加自我链接以及它如何有用?
我们想UPDATE
用Slick(3.0.0)运行补丁/部分,这样我们只修改记录中的一些字段.确切地说,哪些字段将在运行时才会被更新.
例如,对于REST PATCH
请求.
目前我们运行SELECT
第一个获取原始记录然后运行,UPDATE
但在单个SQL语句中执行此操作会更好.
像这样的东西:
def patchPerson(name: Option[String], age: Option[Int]) = {
people.filter(_.name === "M Odersky")
.map(p =>
(name, age) match {
case (Some(_), Some(_)) => (p.name, p.age)
case (Some(_), None) => (p.name)
case (None , Some(_)) => (p.age)
}
)
.update(
(name, age) match {
case (Some(_), Some(_)) => (name.get, age.get)
case (Some(_), None) => (name.get)
case (None , Some(_)) => (age.get)
}
)
}
Run Code Online (Sandbox Code Playgroud)
(请忽略这里丑陋的代码)
上面的代码不能编译,并显示以下错误消息:
找不到匹配的形状.Slick不知道如何映射给定的类型.可能的原因:表[T]中的T与您的*投影不匹配.或者在查询中使用不受支持的类型(例如scala列表).所需级别:slick.lifted.FlatShapeLevel源类型:对象未包装类型:T包装类型:G
和:
没有足够的方法映射参数:(隐式形状:slick.lifted.Shape …
在不删除作业或触发记录且不擦除cron表达式的情况下,在JDBCJobStore中禁用作业的最佳方法是什么?
我正在写一个允许用户通过Facebook注册的手机应用程序.一旦注册,用户就可以通过我将托管的RESTful Web服务访问个性化信息.
我见过各种移动应用似乎使用类似的设置,但只向用户提供Facebook(或Twitter)OAuth身份验证.我想知道这是怎么做到的?
我认为,为了保护这个Web服务,我可以使用HTTPS的HTTP基本身份验证,用户的Facebook OAuth访问令牌作为他们的密码.
这样安全吗?当其他应用程序仅通过Facebook注册用户时,如何处理安全性?
您如何安全地将HTTP的TLS/SSL密钥提交到源代码控制中,以便Puppet可以使用它们?您使用哪些工具和实践来加密/解密这些文件?特别是,哪些工具使其易于自动化.
目前我们在代码库上运行checkstyle,它会标记任何不使用私有访问修饰符的非静态类字段.
这是一个有效的checkstyle规则,还是存在需要非私有字段的情况?例如,我认为在同一个包中创建JUnit测试用例的原因是他们可以使用默认访问修饰符访问字段?
看来,在Groovy中转换对象的惯例是使用as
运算符和覆盖asType()
.例如:
class Id {
def value
@Override
public Object asType(Class type) {
if (type == FormattedId) {
return new FormattedId(value: value.toUpperCase())
}
}
}
def formattedId = new Id(value: "test") as FormattedId
Run Code Online (Sandbox Code Playgroud)
但是,Grails asType()
在运行时覆盖了所有对象的实现,因此它可以支持像这样的习语render as JSON
.
另一种方法是asType()
在Grails Bootstrap类中重写如下:
def init = { servletContext ->
Id.metaClass.asType = { Class type ->
if (type == FormattedId) {
return new FormattedId(value: value.toUpperCase())
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致代码重复(DRY),因为您现在需要在Bootstrap 和 Id类中重复上述操作,否则as FormattedId
将无法在Grails容器外工作.
在Groovy/Grails中编写转换代码还有哪些替代方法可以破坏良好的代码/ OO设计原则,如Single Responsibility …
我正在尝试按照此处的说明在Cloudbees的Jenkins服务上运行我的Grails构建:
http://wiki.cloudbees.com/bin/view/DEV/Build+and+Deploy+Grails+application
但是,当我尝试从"Grails安装"为我的构建作业选择Grails安装时,下拉列表为空,但"默认"选项除外:
当我运行我的构建时,我收到以下错误消息,好像没有安装Grials实例:
java.io.IOException: Cannot run program "grails" (in directory "/scratch/jenkins/workspace/liza"): java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:709)
at hudson.Launcher$ProcStarter.start(Launcher.java:338)
at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:934)
at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:901)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 15 more
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?我需要以某种方式自己安装Grails吗?
我已经尝试检查"使用Grails包装器"复选框,但我仍然遇到类似的问题:
[liza] $ /scratch/jenkins/workspace/liza/grailsw upgrade --non-interactive
FATAL: command execution …
Run Code Online (Sandbox Code Playgroud) 我希望能够从我的servlet容器中运行的Web应用程序中获取所有Spring应用程序上下文的列表.这样我就可以重新初始化上下文而无需重新启动或重新加载我的容器或webapps.
这可能吗?如果是这样,怎么样?无论如何通过Servlet API获取在servlet容器实例上运行的所有servlet上下文的列表?