1
0

More than 3 years have passed since last update.

Maven最低限のメモ

Last updated at Posted at 2021-03-20

Android開発以外でJava使うことがない人間のMavenメモ。SPI開発が目的。

プロジェクト生成

mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false \
-DgroupId=com.hoge \
-DartifactId=Hello

どのようなオプションが標準化もよくわからない。

実行

こうすると動くらしいが、

cd Hello
mvn -q compile exec:java -Dexec.mainClass=com.hoge.App

エラー。

スクリーンショット 2021-03-16 9.48.23.png

エラー対応

文字コードやターゲット環境などの設定が必要らしい(オプションで設定できないの?)。

pom.xml
<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>com.hoge</groupId>
  <artifactId>Hello</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Hello</name>
  <url>http://maven.apache.org</url>

+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
+  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

手動で加えなくても-DarchetypeVersion=RELEASE \ を加えるとpropertiesが自動生成されるみたい。

再実行

mvn -q compile exec:java -Dexec.mainClass=com.hoge.App
Hello World!

jar生成

mvn install

jar中身確認

jar -tf Hello-1.0-SNAPSHOT.jar 

META-INF/
META-INF/MANIFEST.MF
com/
com/hoge/
com/hoge/App.class
META-INF/maven/
META-INF/maven/com.hoge/
META-INF/maven/com.hoge/Hello/
META-INF/maven/com.hoge/Hello/pom.xml
META-INF/maven/com.hoge/Hello/pom.properties

追記

とりあえず下記でテンプレートを作成すればいいのかな?

mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=RELEASE \
-DinteractiveMode=false \
-DgroupId=com.hoge \
-DartifactId=Hello

なんかよくわからんけど、とりあえず。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0