আপনি যদি একগুচ্ছ ফাইলের জন্য অনুপস্থিত সিরিয়াল ভার্সনইউডিটি যুক্ত করতে চান তবে ইন্টেলিজ আইডিইএ খুব ভাল কাজ করতে পারে না। সহজেই এই লক্ষ্যটি সম্পাদন করার জন্য আমি কিছু সাধারণ স্ক্রিপ্ট এলাম:
base_dir=$(pwd)
src_dir=$base_dir/src/main/java
ic_api_cp=$base_dir/target/classes
while read f
do
clazz=${f//\//.}
clazz=${clazz/%.java/}
seruidstr=$(serialver -classpath $ic_api_cp $clazz | cut -d ':' -f 2 | sed -e 's/^\s\+//')
perl -ni.bak -e "print $_; printf qq{%s\n}, q{ private $seruidstr} if /public class/" $src_dir/$f
done
আপনি এই স্ক্রিপ্টটি সংরক্ষণ করুন, add_serialVersionUID.sh
আপনার ~/bin
ফোল্ডারের মতো বলুন । তারপরে আপনি এটিকে আপনার মাভেন বা গ্রেডেল প্রকল্পের মূল ডিরেক্টরিতে চালান:
add_serialVersionUID.sh < myJavaToAmend.lst
এই .lst নীচে নিম্নলিখিত ফর্ম্যাটে সিরিয়াল ভার্সনইউডিউড যুক্ত করতে জাভা ফাইলগুলির তালিকা অন্তর্ভুক্ত করেছে:
com/abc/ic/api/model/domain/item/BizOrderTransDO.java
com/abc/ic/api/model/domain/item/CardPassFeature.java
com/abc/ic/api/model/domain/item/CategoryFeature.java
com/abc/ic/api/model/domain/item/GoodsFeature.java
com/abc/ic/api/model/domain/item/ItemFeature.java
com/abc/ic/api/model/domain/item/ItemPicUrls.java
com/abc/ic/api/model/domain/item/ItemSkuDO.java
com/abc/ic/api/model/domain/serve/ServeCategoryFeature.java
com/abc/ic/api/model/domain/serve/ServeFeature.java
com/abc/ic/api/model/param/depot/DepotItemDTO.java
com/abc/ic/api/model/param/depot/DepotItemQueryDTO.java
com/abc/ic/api/model/param/depot/InDepotDTO.java
com/abc/ic/api/model/param/depot/OutDepotDTO.java
এই স্ক্রিপ্টটি জেডিকে সিরিয়ালওয়ার সরঞ্জাম ব্যবহার করে। পুরানো শ্রেণীর সাথে সামঞ্জস্য বজায় রেখে আপনি যখন প্রচুর ক্লাস সংশোধন করতে চান যেখানে প্রথম দিকে কোনও সিরিয়াল ভার্সনইউড সেট ছিল না তখনই এটি পরিস্থিতির জন্য আদর্শ।
1L
আপনার আইডি এবং বর্ধিত হিসাবে যখন আপনার সিরিয়ালযুক্ত ফর্ম পরিবর্তন করবে তখন আপনাকে সংজ্ঞায়িত করার পরামর্শ দিচ্ছি । ( স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / 888335/… দেখুন )।