nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

Javaプロジェクトのパッケージ名をざっくり変えたい

自分のローカルにあるjp.programmersパッケージになっているサンプルコードとかのプロジェクトをcom.redhat.jbossパッケージとかにリネームしてお客様に渡したいなー、というケースがあったのでシェルスクリプト書いた。

#!/bin/sh

# Usage: ./repackage.sh org.example com.example.foo

FROM_PACKAGE=$1
TO_PACKAGE=$2

find . -type f -not -name '.*' | xargs perl -i~ -pe "s/\Q$1/$2/g"

FROM_PACKAGE_DIR=`echo $FROM_PACKAGE | tr . /`
TO_PACKAGE_DIR=`echo $TO_PACKAGE | tr . /`

mkdir -p src/main/java/$TO_PACKAGE_DIR
mv src/main/java/$FROM_PACKAGE_DIR/* src/main/java/$TO_PACKAGE_DIR/
if [ -d src/test/java ]; then
  mkdir -p src/test/java/$TO_PACKAGE_DIR
  mv src/test/java/$FROM_PACKAGE_DIR/* src/test/java/$TO_PACKAGE_DIR/
fi