[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Maven pom.xml のバージョン番号を Java プログラムから取得する / 桃缶食べたい。で3種類ほど紹介されている。1つ目の方法が最も楽に見えるが maven でビルドしないと maven によって情報が埋め込まれるわけではないので null になるので注意が必要。
license:add-third-party でごりーんと出力できる。依存ライブラリの ライセンス情報を Maven で出力@新人エンジニアの自習室にいい感じにまとまっているので見る。
mvn package
する際に -Duser.name=hogehoge
を付加する
やたらと苦戦したのでメモっておく。こんな感じ
(雛´-`).。oO(#Discord で BCDice を使う bot のアプリを更新しました。
— しゅんしゅんひよこ (@Shunshun94) January 25, 2021
・BCDice-API version 2 に対応しました
・その他いくつかの細かい変更を加えました
)https://t.co/cTbmCHkEtfhttps://t.co/fyUr0rDMj9
v1 もこっそり配布を継続していますが各所の BCDice-API が v2 になりつつあるのを見ていると要らなかったかな、とも思う次第。
リリースに際しては @Twit_Hiyori さんに最後の動作確認等、お世話になりました。
先刻まで動いていた Google Spread Sheets を触るためのアプリが急に動かなくなった。作りは Java Quickstart | Sheets API | Google Developers を参考にしている。得られたスタックトレースは以下の通り。
com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105) at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:326) at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:346) at com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:577) at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:494) at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:863) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:541) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:474) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:591) at com.hiyoko.discord.bot.MessageLogger.GoogleSpreadSheetLogger.initSheet(GoogleSpreadSheetLogger.java:77)
Quick Start の通りに作っているならば、普通に考えたら credentials.json
がおかしいと考えるかもしれない。しかしcredentials.json
がどう考えても正しい場合は tokens
ディレクトリを疑う。このディレクトリはアプリによって生成されているはずだが、この中身が古かったり、壊れていたりすると認証が通らず 401 エラーが返ってくる。tokens ディレクトリをマルッと削除し再実行すると上手くいったりする。「おかしいな、昨日は動いていたのに」という時はこれの有効期限切れ等を疑うと良いかもしれない。
通ることが分かり切っているのでコンパイルだけしたいとき等。あまりない気がするけど最近使う機会があったのでメモメモ。実行時のオプションに -DskipTests=true
を付与すれば OK。
maven clean compile package -DskipTests=true
みたいな感じで。
いうまでもなく普段使いするべきではない。pom.xml 内にこの旨を記載することもできるようだがなし崩し的に JUnit テストがダメダメになりそうなので必要だとしてもオプションでごにょごにょするべきみたい。