我正在使用sbt v0.13.5
在我的项目中,我希望有一个可以接受一些输入(单个字符串)的sbt任务,对它做一些工作并吐出一些输出(再次,一个字符串).我在我的项目中创建了一个帮助器类,我可以通过sbt runMain
(sbt "runMain com.example.utils.ClassName someArgument"
)从终端调用它.
我想要的是为自己节省一些打字,并有一个sbt任务,这样做.我想能够键入sbt doThing withStuff
并命名一个taskKey doThing
,该命令用于调用runMain
要运行的类的名称以及传入的参数.
我知道如何创建任务,但我似乎无法弄清楚如何runMain
从我的build.sbt中的自定义任务定义调用.谁能指出我正确的方向?
我一般对Jersey和servlet还是陌生的,所以希望我只是缺少一些简单的东西...
我已经启动了Jersey应用程序(v2.13),并使用Guice(3.0)进行依赖项注入以及src / main / webapp中的一些静态文件。如果我将Jersey servlet映射到/ *以外的任何其他文件,并在webapp文件夹中请求一个静态文件,则可以毫无问题地得到服务。如果我将Jersey Servlet映射到根目录,则对404静态文件的任何请求都将得到满足。
我真的更希望将Jersey servlet映射到根,但是我还需要能够提供静态内容。有什么办法可以做到这一点?也许将Jersey Servlet映射到根目录,但忽略对/ assets / *或类似内容的请求?
这是我的web.xml:
<filter>
<filter-name>guice-filter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guice-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.example.MyGuiceServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.MyResourceConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)