ログ日記

作業ログと日記とメモ

やっとm2eclipseでmavenからjettyが起動できた

runjettyrunを使おうと思って少し試してみると、終了がうまくいかない。jetty6だとXAConnectionImpl でLinkageErrorが出るし、jetty7だと終了がエラーになる。終了はできているみたいなんだけども…WindowsEclipseだと特にエラーも出なかったがDebianだと動作が怪しい。


ということでmavenのjettyプラグインを使おうとして、Eclipseの実行の構成でMaven buildのゴールにjetty:runを指定して実行したらエラーになった。

A required class is missing: org/apache/maven/shared/filtering/MavenFilteringException
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal ...

など。


コマンドで mvn jetty:run を起動するとうまくいくのにEclipseからだとエラーになってだいぶハマった。
実行の構成のデバッグ出力をオンにしたら、どうもmaven-resources-pluginのバージョンがコマンドからの起動と違っていた。


pom.xmlバージョンを指定することで解決した。
Wicket1.5-rc2 + Seasar の最終的なpom.xmlはこんな感じになった。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche
maLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>myapp</artifactId>
  <version>1.0.0-SNAPSHOT</version>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <outputDirectory>war/WEB-INF/classes</outputDirectory>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>7.3.1.v20110307</version>
                <configuration>
                 <webAppSourceDirectory>war</webAppSourceDirectory>
                   <webAppConfig>
                       <contextPath>/myapp</contextPath>
                   </webAppConfig>
                   <scanIntervalSeconds>10</scanIntervalSeconds>
                   <connectors>
                       <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                           <port>8080</port>
                           <maxIdleTime>60000</maxIdleTime>
                       </connector>
                   </connectors>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>


    </build>


 <repositories>
    <repository>
      <id>maven.seasar.org</id>
      <name>The Seasar Foundation Maven2 Repository</name>
      <url>http://maven.seasar.org/maven2</url>
    </repository>
    <repository>
      <id>maven-snapshot.seasar.org</id>
      <name>The Seasar Foundation Maven2 Snapshot Repository</name>
      <url>http://maven.seasar.org/maven2-snapshot</url>
    </repository>


    <repository>
      <id>example.com</id>
      <name>My Repository</name>
      <url>http://example.com/maven/repo</url>
    </repository>

 </repositories>


<dependencies>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>s2-framework</artifactId>
      <version>2.4.43</version>
      <exclusions>
        <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>s2-extension</artifactId>
      <version>2.4.43</version>
      <exclusions>
        <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>s2-tiger</artifactId>
      <version>2.4.43</version>
    </dependency>

        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jsp_2.0_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-servlet_2.4_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.seasar.container</groupId>
            <artifactId>s2jdbc-gen</artifactId>
            <version>2.4.41</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-annotation_1.0_spec</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-ejb_3.0_spec</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-interceptor_3.0_spec</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jpa_3.0_spec</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
            <version>1.0</version>
        </dependency>

    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-core</artifactId>
        <version>1.5-rc2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-auth-roles</artifactId>
        <version>1.5-rc2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-ioc</artifactId>
        <version>1.5-rc2</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.6.1</version>
    </dependency>



    <dependency>
        <groupId>com.example</groupId>
        <artifactId>s2wicket-custom</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>


  </dependencies>

</project>

Wicketに合わせるためにlogbackを使ってcommons-loggingを使わないようにしている。
GWTを使っていたときの名残でディレクトリ構成は変えている。
あとはs2wicketをWicket1.5-rc2用に若干修正して使っている。