1

我一直在努力让 Jetty 使用 Maven 过滤运行。jetty:run 使用 maven 源目录,因此看不到过滤后的文件。jetty:run-exploded 工作正常,但我无法实时更新我的​​网页。

当然必须有一种使用maven过滤的方法,并且每次我更改网页时都不会重新运行码头任务?

(有没有办法让eclipse自动将网页复制到目标目录?我认为默认情况下它会这样做,但它似乎不起作用。我曾经使用带有触发器和ant任务的eclipse构建器但是这个好像有点老土了。)

4

1 回答 1

1

我有几乎同样的问题。我已经解决了更改码头插件路径的问题。我所做的只是

  • 在另一个配置文件上抽象配置。(本例中的码头)
  • 添加另一个资源导向器进行过滤
  • 更改 jetty 插件配置的路径

    <profile>
     <id>jetty</id>
     <build>
        <resources>
           <resource>
              <directory>../../conf/jetty</directory>
              <filtering>true</filtering>
           </resource>
        </resources>
        <plugins>
           <plugin>
              <groupId>org.mortbay.jetty</groupId>
              <artifactId>jetty-maven-plugin</artifactId>
              <version>${jetty-version}</version>
              ..
              <configuration>
                 <jettyConfig>${project.build.outputDirectory}/jetty.xml</jettyConfig>
                 <webAppConfig>
                    <contextPath>/${jettyContextName}</contextPath>
                    ..
                    <jettyEnvXml>${project.build.outputDirectory}/jetty-env-${jetty-env}.xml</jettyEnvXml>
                 </webAppConfig>
                 <stopKey/>
                 <stopPort/>
              </configuration>
           </plugin>
        </plugins>
     </build>
    </profile>
    

如果您分享您的配置,我们可以协助进一步修改。但基本上你想要做的不是一件容易的事而且很危险,因为就地改变了文件。

也可能有另一个建议。尽管不推荐这种方式,但你可能会在 jetty:run 之前运行 war:inplace:run 这样的。

    mvn war:inplace jetty:run

但是我还没有尝试过这个解决方案,我建议你远离这种方式。

于 2011-10-03T10:10:13.540 回答