やっとm2eclipseでmavenからjettyが起動できた
runjettyrunを使おうと思って少し試してみると、終了がうまくいかない。jetty6だとXAConnectionImpl でLinkageErrorが出るし、jetty7だと終了がエラーになる。終了はできているみたいなんだけども…WindowsのEclipseだと特にエラーも出なかったが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用に若干修正して使っている。