根据Spring boot documentation,当使用基于Crash的远程shell时,可以定义附加命令。
这些命令的默认位置是classpath *:/ commands / ,classpath *:/ crash / commands /
可以使用属性覆盖默认位置,但在提供的示例中,自定义命令位于资源中。
在我看来,自定义命令(至少是java命令)不应该位于资源中,而应该位于src / main / java中。
在资源中定义自定义路径时工作正常,但如何在src / main / java中定义自定义路径?暂时没有办法做到这一点!
答案 0 :(得分:1)
如果他们在src/main/java
下,他们将自动编译,而这不是您所需要的。我的解决方案是将模拟该目录作为 resources 文件夹,简而言之就是转换为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<excludes>
<exclude>crash/commands/*</exclude>
</excludes>
</configuration>
</plugin>
<resource>
<directory>src/main/java/crash/commands</directory>
<targetPath>crash/commands</targetPath>
<filtering>false</filtering>
</resource>
次要更新&amp;声明:强>
您可能已经知道,在登录/注销时会执行一些关闭。至少对于v1.3.1,这是我从spring-boot盲目继承的,它将选择它在类路径中找到的第一个login.groovy
。我的项目工件与所有其他依赖项一起打包在RPM中。由于它的名称以r
开头,它位于默认值所在的crash.shell-1.3.1.jar
之后,因此我必须执行以下小程序,以使其获取我自己的脚本而不是默认脚本: / p>
<!-- hack to make CRaSH pick up login.groovy from our jar instead of the default one -->
<finalName>0_${project.artifactId}-${project.version}</finalName>
答案 1 :(得分:-1)
您可以尝试将命令放在src/main/resources/commands/