2024年 Javaベースのバッチを作るなら その2 プロジェクトを作る
前回、2024年 Javaベースのバッチを作るなら その1 環境と初期設定 の続き。
開発環境は、 VSCode と Rancher Desktop だけでやってみます。
まずバージョン確認
> mvn --version
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /usr/share/maven
Java version: 21.0.3, vendor: Amazon.com Inc., runtime: /usr/lib/jvm/java-21-amazon-corretto
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.146.1-microsoft-standard-wsl2", arch: "amd64", family: "unix"
初期プロジェクト作成 1
mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false \
-DartifactId=csvbatch \
-DgroupId=app \
-Dpackage=csvbatch.app
このようなプロジェクトが作られます。
.
|-- LICENSE
|-- README.md
`-- csvbatch
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- csvbatch
| `-- app
| `-- App.java
`-- test
`-- java
`-- csvbatch
`-- app
`-- AppTest.java
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>app</groupId>
<artifactId>csvbatch</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>csvbatch</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
基本スタックは以前書いた AWS Lambda FunctionでJavaを採用したい に準拠したいと思います。 そして、依存ライブラリを粛々と足す、と言う運びです。
@Singleton
public class AnyService {
public void execute() {
// do something and return something
}
}
public class App {
@Override
public static void main(String[] args) {
Injector injector = Guice.createInjector(new AppModule());
AnyService anyService = injector.getInstance(AnyService.class);
anyService.execute();
}
}
これ位シンプル方がメインアプリには良いですよね。
-
単発バッチだと、ネストを深くしないために、アーティファクトID/グループIDは短くしたほうが良いでしょう ↩︎