mavenでJettyを実行するところまでの備忘録。実行には、jetty-maven-pluginを使います。
必要なもの
- Java 8
- Maven 3.3
- Windows (環境でやってます)
Javaを設定しJAVA_HOMEを設定後、パスに追加する。mavenを解凍し、maven/bin もパスに追加する。
ちなみに、maven-jetty-pluginは以下を参照。
WebApps プロジェクト作成
以下のmvnコマンドを実行すると、test-serverフォルダが作成される
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=test.webapp -DartifactId=test-server -Dpackage=test.webapp -DinteractiveMode=false
以下のように出力される
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.3:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.3:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.3:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: basedir, Value: c:\Workspace\eclipse\ws-p\ztest [INFO] Parameter: package, Value: test.webapp [INFO] Parameter: groupId, Value: test.webapp [INFO] Parameter: artifactId, Value: test-server [INFO] Parameter: packageName, Value: test.webapp [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: c:\Workspace\eclipse\ws-p\ztest\test-server [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13.457 s [INFO] Finished at: 2015-08-23T18:19:26+09:00 [INFO] Final Memory: 13M/193M [INFO] ------------------------------------------------------------------------
ディレクトリ構成は以下のとおり。
C:. └─src └─main ├─resources └─webapp └─WEB-INF
pom.xml の作成
以下のpom.xmlを用意する。jetty.versionは適宜修正。
dependencyは、以下を追加する。 * jetty-server * jetty-webapp
pluginには、以下を追加する。 * jetty-maven-plugin
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test.webapp</groupId> <artifactId>test-server</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>test-server Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <jetty.version>9.3.2.v20150730</jetty.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>${jetty.version}</version> </dependency> </dependencies> <build> <finalName>test-server</finalName> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty.version}</version> </plugin> </plugins> </build> </project>
インストール&実行
インストールを実行すると色々追加される。
mvn install
C:. ├─src │ └─main │ ├─resources │ └─webapp │ └─WEB-INF └─target ├─classes ├─maven-archiver └─test-server ├─META-INF └─WEB-INF ├─classes └─lib
jettyを実行する。
mvn jetty:run
ログが表示され http://localhost:8080/ にアクセスしてHello Worldが表示されればOK。
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building test-server Maven Webapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> jetty-maven-plugin:9.3.2.v20150730:run (default-cli) > test-compile @ test-server >>> [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ test-server --- [WARNING] Using platform encoding (MS932 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ test-server --- [INFO] No sources to compile [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ test-server --- [WARNING] Using platform encoding (MS932 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory c:\Workspace\eclipse\ws-p\ztest\test-server\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ test-server --- [INFO] No sources to compile [INFO] [INFO] <<< jetty-maven-plugin:9.3.2.v20150730:run (default-cli) < test-compile @ test-server <<< [INFO] [INFO] --- jetty-maven-plugin:9.3.2.v20150730:run (default-cli) @ test-server --- [INFO] Configuring Jetty for project: test-server Maven Webapp [INFO] webAppSourceDirectory not set. Trying src\main\webapp [INFO] Reload Mechanic: automatic [INFO] Classes = C:\Workspace\eclipse\ws-p\ztest\test-server\target\classes [INFO] Logging initialized @4335ms [INFO] Context path = /