Java, Android Studio, Visual Studio Code, JSPWiki
Abstract#
異論はあるかもしれませんが、自分の理解としては、Java用のantやmakeといったコンパイル作業を助けてくれるための便利なツールだと思っています。特に依存関係の扱いがスッキリします。
Topics#
Javaのバージョン#
- 2020年4月26日時点で、VSCで使われているMavenのデフォルトのJavaのバージョンは1.5らしい。
[ERROR] ソース・オプション5は現在サポートされていません。6以降を使用してください 。 [ERROR] ターゲット・オプション1.5は現在サポートされていません。1.6以降を使用して ください。が突然出るようにたって、コンパイルできなくなった。1.5に指定しているつもりはないのに。ということで、解決するにはPOM.XMLに以下を追加。
<project> ... <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ... </project>
Javaプロジェクトの新規作成#
- 普通のJavaプロジェクト
Eclipseを使わずにJavaプロジェクトの新規作成をしたい場合があります。コマンドライン上で適切なフォルダに移動し、下記のコマンドを打ち、パッケージ名とかプロジェクト名をインターアクティブに入力していくとプロジェクト名のフォルダができています。そのフォルダをVisual Studio Codeで開くと実行できます。 |
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart
- Webアプリ
Tomcat用などのウェブアプリは、以下のコマンドで[2]。 |
なお[2]で、web.xmlを編集しているが、Servlet3.0から、つまりTomcat8からは、web.xmlにServletを登録する必要がなくなったので、@WebServlet("/path")とかでパスをServletのアノテーションで指定しておくと、http://hostname/appname/pathでそのサーブレットにアクセスできる。 |
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp
依存関係#
- 使いたいライブラリがあったら、pom.xmlのDependencyを使うことを考えましょう。自分でどこかからjarファイルを作ってlibフォルダに入れてというやり方は古いようです。だいたい、ほしいjarの名前とMavenでGoogle先生に問い合わせると教えてくれます。もし公開されているMaven Repositoryに使いたいJarが見つからない場合は、libフォルダなどに保管したJarファイルをPOM.xmlから呼び出すこともできます。[1]
<dependency> <groupId>org.braincopy</groupId> <artifactId>braincopy</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${basedir}/lib/braincopy-1.0.0.jar</systemPath> </dependency>
EclipseでMaven#
- EclipseにちゃんとMaven用のプラグインが入っており、使いやすいです。Maven Dependencyなどがうまくいくはずなのにエラーが出る場合は、右クリックでRefreshを選んでみましょう。回復する場合があります。
- EclipseでMaven使ってJavadocやろうとすると
Reference#
- [#1]http://sinsengumi.net/blog/2012/12/maven%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%A7%E6%8F%90%E4%BE%9B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%82%B5%E3%83%BC%E3%83%89%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3jar/
- [#2]a4dosanddos, 2015年3月5日, Mavenでwarファイルを作成する, http://a4dosanddos.hatenablog.com/entry/2015/03/05/002822