我需要配置从maven货运插件运行的jetty指向静态内容,Ive查看了jetty文档,我无法看到如何将配置应用于jetty作为货物的一部分运行。我想配置webApp部分并将资源库设置为构建为此构建模块的角度应用程序:
<execution>
<id>start jetty - angular webapp</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
<configuration>
<container>
<containerId>jetty7x</containerId>
<type>embedded</type>
</container>
<webApp>
<resourceBases>
<contextPath>/</contextPath>
<resourceBase>../calculator-web/dist</resourceBase>
</resourceBases>
</webApp>
<configuration>
<properties>
<cargo.servlet.port>11000</cargo.servlet.port>
</properties>
</configuration>
</configuration>
</execution>
Jetty启动但似乎忽略了这个配置,我只得到了我的index.html文件的一个404。
有人可以指出我正确的方向吗?
答案 0 :(得分:0)
虽然货物似乎不直接支持Jetty的重新加载或自动热重新部署功能,但至少可以提供“未完成”的静态内容并立即获取更改,例如在开发过程中运行嵌入式容器。
我目前的解决方案是重新配置Jetty's DefaultServlet
,将resourceBase
指向项目的“实时”源目录(例如${basedir}/src/main/webapp
)而不是可部署的default (build) <location/>
(例如{ {1}})和(只是为了确定)disabling useFileMappedBuffer
以避免Windows中的文件锁定:
webdefault.xml
(例如${project.build.directory}/${project.build.finalName}
,例如,在单独运行货物集装箱时)到target/cargo/configurations/jetty.../etc/
修改其src/main/jetty/my-webdefault.xml
初始化参数:
DefaultServlet
将<web-app ...> <!-- src/main/jetty/my-webdefault.xml -->
:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
:
<init-param> <!-- relative to pom.xml, or wherever cargo runs -->
<param-name>resourceBase</param-name>
<param-value>./src/main/webapp</param-value>
</init-param>
<init-param> <!-- to avoid file locking in Windows, use: false -->
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
</web-app>
copy the new config file cargo-maven2-plugin
放入(Jetty)容器的my-webdefault.xml
目录中:
etc/
<project ...> <!-- pom.xml -->
:
<build>
:
<plugins>
:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>...</version>
<configuration>
<container>...</container>
<configuration>
<configfiles>
<configfile>
<file>${basedir}/src/main/jetty/my-webdefault.xml</file>
<tofile>etc/webdefault.xml</tofile>
</configfile>
</configfiles>
<properties>...</properties>
</configuration>
<deployables>...</deployables>
</configuration>
</plugin>
</plugins>
</build>
</project>
PS。我尝试使用mvn clean verify cargo:run
在单独的上下文中触发简单的static content ResourceHandler
(例如scratch.xml
)并未成功。