从jenkins启动脚本的正确方法是什么,不要让构建挂起,让流程继续运行?我似乎无法让它发挥作用.脚本未运行或构建挂起.
如果我把生成的"执行shell"的步骤bash relaunch.sh &或relaunch.sh > output.log &或者nohup bash relaunch.sh &,什么都不会发生; 构建完成,但该过程不运行.我想这可能与Jenkins等待错误管道关闭有关.
如果nohup bash relaunch.sh 2>&1 > output.log 按照此处的建议执行操作
,则输出会被正确重定向,但构建会挂起(未完成),并且当我终止构建时进程会终止.
添加export BUILD_ID=dontKillMe,如建议在这里,在这里,并在这里,无论是在"执行shell"的步骤或脚本本身也没有帮助.当我杀死构建时,构建挂起并且进程终止.毋庸置疑,我对linux的了解非常有限.
人们如何以干净的方式做到这一点?
尽管使用Logback配置了Hibernate的特定日志记录,我的Spring Boot应用程序仍然在控制台中显示Hibernate查询,如下所示:
<appender name="HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGDIR}/hibernate.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGDIR}/hibernate.log.%d</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="org.hibernate" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
<logger name="org.hibernate.SQL" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
<logger name="org.hibernate.type.descriptor.sql" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
Run Code Online (Sandbox Code Playgroud)
它会将Hibernate的日志(包括查询)发送到文件hibernate.log.但我还想避免在控制台中进行查询,我认为应该使用此配置进行查询.
我错过了什么?
我想要一个添加requestId到我的web应用程序的日志,如图所示这里.
public class MDCFilter implements ContainerRequestFilter, ContainerResponseFilter
{
private static final String CLIENT_ID = "client-id";
@Context
protected HttpServletRequest r;
@Override
public void filter(ContainerRequestContext req) throws IOException
{
Optional<String> clientId = Optional.fromNullable(r.getHeader("X-Forwarded-For"));
MDC.put(CLIENT_ID, clientId.or(defaultClientId()));
}
@Override
public void filter(ContainerRequestContext req, ContainerResponseContext resp) throws IOException
{
MDC.remove(CLIENT_ID);
}
private String defaultClientId()
{
return "Direct:" + r.getRemoteAddr();
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的问题是,它设置和删除 requestId从MDC上述过滤器.我还记录了我的应用程序生成的响应的主体WriterInterceptor.问题是,因为拦截器在过滤器之后运行,所以当我WriterInterceptor执行时,没有requestId MDC.
我的问题是,是否可以MDC.clear()在结束时打电话WriterInterceptor(感觉某种程度上是hacky),还是有更好的方法来实现这一目标?
有什么方法可以查看 Intellij 正在执行哪些命令来运行测试?在“运行”或“调试”视图中没有类似的内容。
基本上我想要的与此相同,但对于 Intellij (15)。
配置Swagger 2时有没有办法指定多个包?
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setResourcePackage("com.company1.resources ; org.company2.resources");
beanConfig.setScan(true);
Run Code Online (Sandbox Code Playgroud)
BeanConfig.setResourcePackage只接受一个字符串.如果我用空格分隔它们,只考虑第一个空格.如果我尝试使用分号,那么招摇没有找到任何分号.
我有一个带有Jersey 2的Spring Boot应用程序.
我想我在一些教程中看到过,我现在不记得了,你可以有一个属性来application.properties引用另一个属性。此外,Intellij 将了解您在做什么(使占位符可点击并带您到引用的属性和类似的东西)。
如下:
my.prop.abs=example.com
my.prop.rel=${my.prop.abs}/about
Run Code Online (Sandbox Code Playgroud)
我只是找不到要使用的占位符。这可能吗?
我正在尝试在Windows 10上安装一个名为clanki的程序.在它的安装文档中,它说使用'cabal install clanki'.我下载了cabal,然后是ghc.现在我遇到了包的版本问题base.
$ cabal install clanki
Resolving dependencies...
cabal.exe: Could not resolve dependencies:
trying: clanki-1.2.7 (user goal)
next goal: base (dependency of clanki-1.2.7)
rejecting: base-4.9.0.0/installed-4.9... (conflict: clanki => base<=4.9.0)
rejecting: base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0,
base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0,
base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0,
base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0,
base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable
package requires installed instance)
Dependency tree exhaustively searched.
Run Code Online (Sandbox Code Playgroud)
所以clanki要求基数大于4.9(堆栈比cabal更清楚),然后我想将基数降级到4.8.2.0.当我尝试时ghc-pkg unregister base,它不允许我.甚至没有--force:
$ ghc-pkg unregister base …Run Code Online (Sandbox Code Playgroud) java ×3
spring-boot ×2
bash ×1
cabal ×1
command-line ×1
filter ×1
haskell ×1
hibernate ×1
intellij-15 ×1
interceptor ×1
jax-rs ×1
jenkins ×1
jersey-2.0 ×1
linux ×1
logback ×1
mdc ×1
properties ×1
shell ×1
spring ×1
swagger ×1
swagger-2.0 ×1