LoginSignup
1
0

AozoraEpub3に手を入れる方法

Posted at

諸事情あって青空文庫のデータをEPUBにする必要があったので色々探してたらAozoraEpub3なるものを見つけた。

幸いなことにOSSで公開されているので何かあったら自分で手を入れられるのもよかったし、しっかり作られてる印象があったので自分用にメモを残す。

開発環境

まずは作者さんに感謝しつつ下記記事を参考に開発環境を整える。

自分の開発環境はVSCode+Java Extensionなんで、そっち向けにメモを残す。

ちなみに自分用にはGUIは不要だったのでAozoraEpub3Appletを使う人はローカルにAdoptium+Ant環境を用意するといいと思う(未検証)

必要なツール類

  • Docker for Desktop
  • Visual Studio Code
    • Java Extension

ソースコードのClone

git clone https://github.com/kyukyunyorituryo/AozoraEpub3.git

VSCode環境

開発環境用のDockerコンテナが必要なので次の手順に従ってコンテナを追加。ついでにGradleとAntのインストールもやってしまう。

開発用コンテナを追加。
image.png

Javaのコンテナを使う(Microsoft Build of OpenJDKだと思う)
image.png

バージョンは作者さんの指定のとおりJava 17で。
image.png

今のところ不要なはずだけど、Gradleも一応いれておく。
image.png

最終的なパッケージングにはantが必須なのでantを探して追加。
image.png

上記の設定ができたらdevcontainer.jsonができるので、Reopen in containerで上記設定のコンテナを起動する。

デバッグ実行

create a launch.json file. からlaunch.jsonを追加すると自動でデバッグ用のファイルが作られる。

image.png

これだけだとデバッグ実行できないのでコンテナ内に適当に青空文庫のtxtファイルをダウンロードしてきてargs で入力元のtxtファイルパスを指定する。

...
        {
            "type": "java",
            "name": "AozoraEpub3",
            "request": "launch",
            "mainClass": "AozoraEpub3",
            "projectName": "AozoraEpub3",
            "args": [
                "/workspaces/AozoraEpub3/424_ruby_19825.zip"
            ]
        },
...

これでデバッグ実行はできるけど、Velocity関連でFileNotFoundエラーが発生する。パスの問題だと思うけどすぐには解決できなかったので解決できたら追記する。
なので、現状デバッグ実行したければEclipseを使うのがベスト。

ビルド実行

デバッグはできないものの、ビルドはできる。
事前準備として、jarファイルが生成される先を変更しておく。

-     <property name="dir.jarfile" value="C:/Users/Owner/Desktop/AozoraEpub3-1.1.1b17Q/"/>
+     <property name="dir.jarfile" value="/workspaces/AozoraEpub3/dist/AozoraEpub3-1.1.1b17Q/"/>

上記にあわせて /workspaces/AozoraEpub3/dist を作るのを忘れないように。

あとはJarを固めるため次のコマンドをVSCodeのターミナルから実行する。もしantが入ってない場合はsdk install antでantを追加する。

ant -buildfile ant.xml

BUILD SUCCESSFUL が表示されたらdistフォルダ以下に生成されたツールが出力される。

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