如何在不同的maven配置文件上运行jetty

时间:2014-04-17 06:09:42

标签: java maven maven-jetty-plugin

我正在使用 maven-jetty-plugin 。我已经为测试和开发创建了两个配置文件。 这是我的pom

<profiles>
      <profile>
      <id>test</id>
      <build>

    <finalName>Authorization</finalName>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
               <execution>
                  <phase>test</phase>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
         <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
        <configuration>
          <scanIntervalSeconds>10</scanIntervalSeconds>
          <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>8080</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>
      </plugins>
      </build>
      </profile>
        <profile>
      <id>development</id>
      <build>

    <finalName>AuthorizationTest</finalName>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
               <execution>
                  <phase>test</phase>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
      </plugins>
      </build>
      </profile>
   </profiles>

所以,当我运行jetty时:运行我想要对其进行分析以进行测试和开发。

像   jetty:run -Ptest 用于测试配置文件和 jetty:run -Pdevelopment

当我运行jetty时:运行-Ptest它不起作用。我是否需要进行额外的配置才能使其运行? 如果插件无法实现,那么还有其他选择在不同的maven资料上运行码头?请帮忙吗?

2 个答案:

答案 0 :(得分:1)

你既没有将码头插入一个阶段,也没有给它一个执行目标。与许多其他插件相反,jetty-maven-plugin的目标与默认阶段无关。顺便说一句:你正在使用一个绝望过时的jetty-plugin版本。从那时起,它已经从mortbay转移到eclipse基础并进行了重大改造 - 至少一次。我已相应调整了以下示例:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.mwmahlberg.examples</groupId>
<artifactId>start-jetty-in-profiles</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- Adjust to your packaging here -->
<packaging>pom</packaging>

<profiles>
  <profile>
    <id>test</id>
    <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <executions>
          <execution>
            <!-- this will fire up jetty as soon as you reach the integration-test phase in the test profile -->
            <phase>integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <scanIntervalSeconds>10</scanIntervalSeconds>
          <connectors>
            <connector implementation="org.eclipse.jetty.nio.SelectChannelConnector">
              <port>8080</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>
    </plugins>
    </build>
  </profile>

  <profile>
    <id>development</id>
  </profile>
</profiles>
</project>

答案 1 :(得分:0)

我在IntelliJ中定义了一个新的maven命令,如下所示:

clean package jetty:run -Pdev

它应该工作!在开发阶段,profile dev用于替换配置文件中的params。

我仍然使用来自mortbay的jetty插件:

<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.4.5.v20110725</version>