OpenJDK11をWindowsで自前ビルドする
Java の有償化ってより身近なところでは GPL 化と言った方が現状に即してるな、と思っています。
それはともかく、何となく OpenJDK をデバッグ情報付きでビルドしたくなったのでメモ。
…Azure FunctionsでPowerShell使えなくなっとる
v1 で実験的サポートだった PowerShell が、実行環境のバージョンが上がったとかで v2 になり、選べなくなっているみたい?一時的な話?
実行環境を作る
https://portal.azure.com/ から 「リソースの作成」「Serverless Function App」と選択していきます。
…Invoke-WebRequestやCompress-Archiveを使っていると画面上部に一瞬表示される何かの表示を非表示に
進捗状況(progress)が表示されているそうです。少量のデータを扱っている場合には画面の一部がフラッシュしているように見えており、何のための画面効果かさっぱりわかりませんでした(ので検索キーワードすら思い浮かびませんでした)。
…Windows向けrsyncがなくなったみたい?
vagrant
でrsync
が使いたくなった。
そこでscoop
でrsync
をインストールしようとしたが、見つからない。
おや?と思い検索してみると次の issue が。
rsync free version is no more #2506
vim で E117 未知の関数です
vim は ~/.vim
ディレクトリを読むのに対し gvim は~/vimfiles
ディレクトリを読むためだそうです。Windows ならジャンクションを作りましょう。
cd /d %homepath%
mklink /j vimfiles .vim
参考:
…gitで利用するエディタを設定したかった
あるいは vim-plug をセットアップしたら git commit したときに E492: Not an editor command って怒られるようになっちゃった。
Vagrant で CentOS の Box を作るたびにひっかかる。
Git が使う editor を(vi でなく)vim に設定すればよい。
…M2_HOMEは不要
M2_HOME
は削除されました。
- MNGSITE-283 Remove M2_HOME from documentation
- MNG-5607 Don’t use M2_HOME in mvn shell/command scripts anymore
- 3.5.0 リリースノート “Based on problems in using M2_HOME related to different Maven versions installed and to simplify things, the usage of M2_HOME has been removed and is not supported any more MNG-5823, MNG-5836, MNG-5607.”
- (変更 commit)
敢えて設定するのであれば、 上の変更 commit リンク先にある通り、M2_HOME
でなくMAVEN_HOME
にしましょう。
ただし、敢えて設定すべき状況は通常発生しないと思います。
Git for Windowsでzipコマンドを再現する
git-archive
使えば何とかなることに気付きました。
ちなみにunzip
コマンドは標準で使えます。
mkdir workrepo
cd workrepo
git init
cp -r [target_file_or_dir] .
git add .
git commit -m commit
git archive -o ../myarchive.zip @
cd ..
rm -rf workrepo
あんまり自信ないんですけどスクリプトファイルに落とすとこんな感じ?
…Undertow上でJSF実現
手順
- FacesInitializer#onStartupでやっていることを自力で書く
- 標準パス(
WEB-INF/classes
)に無いので、ManagedBean
アノテーションを付与したクラスを自前で収集する
ソースは: https://github.com/yukihane/hello-undertow-mojarra
関連
…エラーメッセージでググろうと思ったんだけど日本語だからかヒットしない
Java でメッセージを英語にする
環境変数 JAVA_TOOL_OPTIONS
に設定しよう。
export JAVA_TOOL_OPTIONS="-Duser.language=en -Duser.country=US"
…
Tomcat上でJSF実現
非 JavaEE なサーブレットコンテナ上で JSF を実行するように変更する手順。
TL;DR
- Mojarra を依存関係に含める
- JSF リソースを
javax.faces.webapp.FacesServlet
にマップするようweb.xml
で設定する
実装例
https://github.com/yukihane/hello-jsf/tree/feature/server/tomcat
feature/server/tomcat
ブランチと feature/server/javaee
ブランチで diff を取れば、 JavaEE アプリケーションサーバ向け設定との差異がわかります。
(ちなみに master
ブランチや README.md
の説明は別の内容向けなので気にしないで下さい)
Building Java Project
はじめに
- 他者が作成したプログラムにちょっと変更を加えて使いたい
- その言語は未経験だけれど、コードの変更自体は検索したり周辺コードのコピペで何とかなりそう
- しかし、変更したコードをどうやってビルドすれば良いんだ…?
なんてことがたまにあります。
そんな時に参考になるようなドキュメントを目指して記述しました。
yamlの継承っぽいのは継承というよりハッシュのマージ
なので配列(Array)には使えない。
database: &default
ip: 192.168.1.5
port: 2000
db_name: test
foo_database:
<<: *default
port: 2001
db_name: foo
上は実現できても下のようにはできない。
database_attr: &default
- ip
- port
www_attr:
<<: *default
- name
…