हमारे एंटरप्राइज़ एप्लिकेशन में हम अपने जावा कक्षाओं से डेटा एकत्र करने के लिए एक गतिशील तरीका खोज रहे हैं। हमने name
संपत्ति के साथ एक कस्टम एनोटेशन इंटरफ़ेस (@interface
) बनाया है। हम सभी एनोटेटेड कक्षाओं से इस संपत्ति का मूल्य एकत्र करना चाहते हैं।मैवेन 2 के साथ कस्टम एनोटेशन प्रोसेसर का उपयोग कैसे करें?
मैं कस्टम एनोटेशन के लिए AnnotationProcessorFactory
और AnnotationProcessor
बनाने में कामयाब रहा। चूंकि हम मेवेन 2 का उपयोग कर रहे हैं, इसलिए मैंने मुख्य परियोजना के pom.xml
में प्लगइन में निम्नलिखित जोड़ा।
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0-alpha-5</version>
<configuration>
<factory>our.company.api.component.lister.ComponentAnnotationProcessFactory</factory>
</configuration>
</plugin>
यह मुख्य परियोजना में रहता है जिसमें कई उप-परियोजनाएं हैं। फैक्ट्री और कस्टम प्रोसेसर इन उप-परियोजनाओं में से एक में हैं। कस्टम एनोटेशन सभी उप-परियोजनाओं के माध्यम से बिखरे हुए हैं इसलिए मैंने मुख्य परियोजना के pom.xml
में प्लगइन डाला है।
समस्या तब होती है जब मैं mvn apt:process
आदेश जारी करता हूं मुझे प्रोसेसर के बिना एनोटेशन के बारे में चेतावनी मिली और हमारे कस्टम एनोटेशन उनमें से हैं। मुझे लगता है कि इसका मतलब है कि प्लगइन कारखाने वर्ग नहीं मिल सकता है।
मुझे क्या करना चाहिए ताकि प्लगइन कारखाने और प्रोसेसर फ़ाइल को ढूंढ सके?
संपादित करें:
परियोजना पदानुक्रम बहुत सरल है:
main_project
|-sub_project1
|...
|-sub_projectn
प्लगइन main_project
की pom.xml
में है। बस लगता है कि कारखाने और प्रोसेसर sub_project1
में हैं और कस्टम एनोटेशन sub_project2
में, sub_project3
, ..., sub_projectn
क्या अपनी परियोजना पदानुक्रम कैसा दिखता है में Annotation Processing Tool? – Daniel