2016-12-09 10 views
6

मैं जावा कोड के माध्यम से अपने मौजूदा स्टूडियो परियोजना के लिए Maven प्रकृति जोड़ना चाहते हैं। ग्रहण में, हम द्वारा ऐसा करने का अधिकार क्लिक-> configure-> कन्वर्ट विकल्प Maven करने के लिए कर सकते हैं। मैं इसे जावा कोड के माध्यम से कैसे आमंत्रित कर सकता हूं? मेरे परिदृश्य है, मैं जोड़ लिया है सही क्लिक-> मेनू-> उत्पन्न परियोजना के लिए है और इस परियोजना के लिए मैं पोम फ़ाइल पैदा हो जाएगा और उसके बाद मैं एक ही क्लिक में इसे करने के लिए Maven प्रकृति जोड़ना चाहते हैं के क्लिक पर पोम विकल्प। मैं अपने जावा कोड से maven को परिवर्तित करने के लिए ग्रहणों डिफ़ॉल्ट कोड आह्वान कर सकते हैं?कैसे स्टूडियो परियोजना के लिए Maven प्रकृति को जोड़ने के लिए प्रोग्राम के

उत्तर

7

मैं समाधान पता लगा। मैं एक ग्रहण परियोजना है - हम नीचे दिए गए के रूप में पेश करने की Maven प्रकृति जोड़ सकते हैं।

import org.eclipse.core.resources.ICommand; 
import org.eclipse.core.resources.IProject; 
import org.eclipse.core.resources.IProjectDescription; 
import org.eclipse.core.runtime.NullProgressMonitor; 
import org.eclipse.ui.IWorkbenchWindow; 

private void addMavenNature(IProject project){ 
    IProjectDescription desc = project.getDescription(); 

    String[] prevNatures = desc.getNatureIds(); //it takes all previous natures of project i.e studioNature,javanature 
    String[] newNatures = new String[prevNatures.length + 1]; 

    System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length); 

    newNatures[prevNatures.length] = "org.eclipse.m2e.core.maven2Nature"; //add maven nature to the project 
    desc.setNatureIds(newNatures); 

    project.setDescription(desc, new NullProgressMonitor()); 

    ICommand[] commands = desc.getBuildSpec(); 
    List<ICommand> commandList = Arrays.asList(commands); 
    ICommand build = new BuildCommand(); 
    build.setBuilderName("org.eclipse.m2e.core.maven2Builder"); //add maven builder to the project 
    List<ICommand> modList = new ArrayList<>(commandList); 
    modList.add(build); 
    desc.setBuildSpec(modList.toArray(new ICommand[]{})); 
} 
+0

कृपया यहां 'प्रोजेक्ट' का विवरण शामिल करें? आप 'आईप्रोजेक्ट डिस्क्रिप्शन', 'आईसीओएमएंड' कहां से आयात करते हैं? और उपर्युक्त कोड का उपयोग करके परियोजना को एक मेवेन प्रोजेक्ट में परिवर्तित करने के तरीके के बारे में भी एक संक्षिप्त जानकारी दी गई है। – nullpointer

+0

@nullpointer मैंने अपना जवाब संपादित किया है – Disha

संबंधित मुद्दे

 संबंधित मुद्दे