小编gar*_*560的帖子

从Jenkins开始在后台启动shell脚本的简洁方法

从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的了解非常有限.

人们如何以干净的方式做到这一点?

linux bash shell jenkins

23
推荐指数
2
解决办法
2万
查看次数

无法避免使用Spring Boot和Logback将SQL登录到控制台

尽管使用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.但我还想避免在控制台中进行查询,我认为应该使用此配置进行查询.

我错过了什么?

java spring hibernate logback spring-boot

12
推荐指数
4
解决办法
1万
查看次数

从MDC清除requestId的位置

我想要一个添加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)

这样做的问题是,它设置和删除 requestIdMDC上述过滤器.我还记录了我的应用程序生成的响应的主体WriterInterceptor.问题是,因为拦截器在过滤器之后运行,所以当我WriterInterceptor执行时,没有requestId MDC.

我的问题是,是否可以MDC.clear()在结束时打电话WriterInterceptor(感觉某种程度上是hacky),还是有更好的方法来实现这一目标?

java jax-rs filter interceptor mdc

6
推荐指数
1
解决办法
729
查看次数

如何查看Intellij执行了什么命令

有什么方法可以查看 Intellij 正在执行哪些命令来运行测试?在“运行”或“调试”视图中没有类似的内容。

基本上我想要的与此相同,但对于 Intellij (15)。

command-line intellij-idea intellij-15

5
推荐指数
1
解决办法
2226
查看次数

使用Swagger 2的多个资源包

配置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应用程序.

java swagger jersey-2.0 swagger-2.0

5
推荐指数
1
解决办法
5812
查看次数

在 application.properties 中引用另一个属性并让它被 Intellij 识别

我想我在一些教程中看到过,我现在不记得了,你可以有一个属性来application.properties引用另一个属性。此外,Intellij 将了解您在做什么(使占位符可点击并带您到引用的属性和类似的东西)。

如下:

my.prop.abs=example.com
my.prop.rel=${my.prop.abs}/about
Run Code Online (Sandbox Code Playgroud)

我只是找不到要使用的占位符。这可能吗?

properties intellij-idea spring-boot

5
推荐指数
0
解决办法
3612
查看次数

如何用cabal降级基数?

我正在尝试在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)

haskell cabal cabal-install

5
推荐指数
2
解决办法
2269
查看次数