প্যাকেজ- ইনফো.জভা কেন দরকারী?


97

আমি যখন আমার জাভা প্রজেক্টের উপরে চেকস্টাইল চালাই তখন এটি Missing package-info.java file.কিছু শ্রেণীর জন্য বলে , তবে তাদের সবকটিই নয়। এই বার্তাটি কেবল কখনও কখনও কেন প্রদর্শিত হয় তা আমি সত্যিই বুঝতে পারি না। তবুও আমার প্রকল্পটি প্যাকেজ-ইনফো.জভা ছাড়া পুরোপুরি সূক্ষ্মভাবে চলে।

প্যাকেজ- ইনফো.জভা কী করে? আমার জাভা প্রকল্পগুলির জন্য আমার কি সত্যিই এটির প্রয়োজন?


4
আপনি এগুলি প্যাকেজ পর্যায়ে ডকুমেন্টিং বা টীকা দেওয়ার জন্য ব্যবহার করতে পারেন। এই প্রশ্নটি দেখুন ।
ম্যাকডোয়েল

আমি এই সময়ের মধ্যে প্যাকেজ-ইনফো.জাবায় অনুরাগী হয়েছি তবে আমি অবাক হয়েছি যে কোনও README.md 2018 এ আরও উপযুক্ত
কিনা

@ শ্রীধর-সারনোব্যাট প্যাকেজ-ইনফো-জাভা এবং গিট থেকে রেডএমই.এমডির পাশাপাশি কনফ্লুয়েনও সম্ভবত জিরা টিকিট যুক্ত করার সম্ভাবনা রয়েছে। এই পদ্ধতিতে ডায়াগ্রাম, ওয়ার্কফ্লো বা ভিডিওগুলি যুক্ত করা যেতে পারে।
সক্রেটিস

4
আপনি কি জানেন যে আপনি সেখানে অন্যান্য কোডও লিখতে পারেন? ক্লাস ইত্যাদির মতো ... অদ্ভুত!
sproketboy

উত্তর:


106

এটি প্যাকেজের জন্য জাভাদোকগুলি তৈরি করতে ব্যবহৃত হয়।

/**
* Domain classes used to produce .....
* <p>
* These classes contain the ......
* </p>
*
* @since 1.0
* @author somebody
* @version 1.0
*/
package com.domain;

প্যাকেজের জন্য com.domainপ্যাকেজ তথ্য উত্পন্ন করবে :

উদাহরণস্বরূপ ফলাফল: https://docs.oracle.com/javase/7/docs/api/java/awt/package-summary.html


দুঃখিত এখনও আপনি কোন অংশটি উল্লেখ করেছেন তা পরিষ্কার Example resultনয় এটি রিডমি.এমডি?
শরীফ

50

টিকা

প্যাকেজ-ইনফো.জভা ব্যবহারের আর একটি ভাল কারণ হ'ল ফাইন্ডব্যাগগুলি ব্যবহারের জন্য ডিফল্ট টীকা যুক্ত করা । উদাহরণস্বরূপ, যদি আপনি এটি আপনার প্যাকেজ-তথ্য ফাইলে রাখেন:

@DefaultAnnotation(NonNull.class)
package com.my.package;

তারপরে যখন ফাইন্ডব্যাগগুলি সেই প্যাকেজে কোডটিতে চলে তখন সমস্ত পদ্ধতি এবং ক্ষেত্রগুলিকে অকার্যকর বলে ধরে নেওয়া হয় যদি না আপনি সেগুলি দিয়ে মন্তব্য করেন @CheckForNull। এটি বিকাশকারীদের @NonNullপ্রতিটি পদ্ধতি এবং ক্ষেত্রের সাথে টীকা যুক্ত করার প্রয়োজনের তুলনায় অনেক সুন্দর এবং বেশি বুদ্ধিমান ।


12

কিছু ফাইন্ডব্যাগ টীকাগুলিই নয়, সাধারণ লাইব্রেরিতে প্রচুর জাভা টীকাগুলির java.lang.annotation.ElementType.PACKAGEনিজস্ব java.lang.annotation.Targetটীকাগুলির সম্ভাব্য মানগুলির মধ্যে একটি রয়েছে যেমন:

com.google.gwt.core.client.js.JsNamespace
com.querydsl.core.annotations.Config
com.sun.xml.bind.XmlAccessorFactory
groovy.transform.BaseScript
java.lang.Deprecated
javax.annotation.Generated
javax.xml.bind.annotation.XmlAccessorOrder
org.hibernate.annotations.TypeDef
net.sf.ehcache.pool.sizeof.annotations.IgnoreSizeOf
org.apache.hive.common.HiveVersionAnnotation
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeAction
org.codehaus.commons.nullanalysis.NotNullByDefault
org.eclipse.persistence.oxm.annotations.XmlNameTransformer
org.glassfish.jersey.Beta
org.jgroups.annotations.Experimental

এবং আরো অনেক কিছু.

এই package-info.javaফাইলটি সেই ফাইলটি হবে যেখানে আপনি এ জাতীয় মন্তব্য (জাভাদোক সহ) রাখতে পারেন।


7

একটি প্যাকেজ- info.java ফাইল পুরো প্যাকেজ নথিতে জাভাদোক যুক্ত করার অনুমতি দেয়। উদাহরণস্বরূপ http://docs.oracle.com/javase/7/docs/api/java/applet/package-summary.html দেখুন ।

যদি আপনি প্যাকেজ ডকুমেন্টেশন মিস করার বিষয়ে চিন্তা করেন না, তবে সতর্কতাটি উপেক্ষা করুন বা জাভাদোকপ্যাকেজ চেকটি অক্ষম করুন ।


4

Package-info.java যে কোনো জাভা সোর্স প্যাকেজ যোগ করা যেতে পারে একটি জাভা ফাইল। এটির নাম অনুসারে "প্যাকেজ" স্তরে তথ্য সরবরাহ করতে ব্যবহৃত হয়। এটিতে প্যাকেজে ব্যবহৃত ডকুমেন্টেশন এবং টিকা রয়েছে।

জাভাডোক উদাহরণ ইতিমধ্যে উত্তরে সরবরাহ করা হয়েছে, নীচের অংশটি এটি ব্যাখ্যা করে যে এটি কীভাবে কাজ করে।

উদাহরণস্বরূপ, নীচের ফাইলে এটি joda.time.DateTime এর অরগেন্সিকে "বিকল্প" হিসাবে ব্যবহার করা হয় or

@TypeDefs({
    @TypeDef(name = "PersistentDateTime", typeClass = PersistentDateTime.class, defaultForType=DateTime.class)})

package xyz.abc;

import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import org.jadira.usertype.dateandtime.joda.PersistentDateTime;
import org.joda.time.DateTime; 

"প্যাকেজ" স্তরে বিভিন্ন জিনিস সম্পাদন করতে ব্যবহার করা যেতে পারে এমন কয়েকটি টিকা উপলব্ধ রয়েছে। এটি https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/annotations/package-summary.html পাওয়া যাবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.