Org.apache.maven.project.MavenProject की मावेन निर्भरता की सूची प्राप्त करें


10

मैं कुछ मावेन कलाकृतियों के उपयोग की निर्भरता की एक सूची प्राप्त करने की कोशिश कर रहा हूं org.apache.maven.project.MavenProject

मेरा कोड इस तरह है।

public List<Dependencies> loadProject() {
    Model mavenModel = new Model();
    mavenModel.setModelVersion("4.0.0");
    mavenModel.setGroupId("org");
    mavenModel.setArtifactId("wso2");
    mavenModel.setVersion("1.0.0");

    addDependency(mavenModel, "com.google.inject", "guice", "4.2.2");
    addDependency(mavenModel, "ch.qos.logback", "logback-classic", "1.2.3");

    MavenProject mavenProject = new MavenProject(mavenModel);

    //******* Need to resolve dependencies of `mavenProject` and *******
    //******* get the list of dependencies of this project.    *******

    return dependencies;
}

private static void addDependency(Model mavenModel, String groupId, String artifactId, String version) {


Dependency dependency = new Dependency();
    dependency.setGroupId(groupId);
    dependency.setArtifactId(artifactId);
    dependency.setVersion(version);
    mavenModel.addDependency(dependency);
}

मूल रूप से मैं निर्भरता के पेड़ परिणाम प्राप्त करने की कोशिश कर रहा हूं, जो mvn dependency:treeप्रोग्राम द्वारा सूची के रूप में कमांड द्वारा लौटता है ।

कलाकृतियों के लिए उदाहरण :

  • com.google.inject:guide:4.2.2
  • ch.qos.logback:logback-classic:1.2.3

निर्भरता सूची:

List = [
com.google.inject:guice:jar:4.2.2:compile,
javax.inject:javax.inject:jar:1:compile,
aopalliance:aopalliance:jar:1.0:compile,
com.google.guava:guava:jar:25.1-android:compile,
com.google.code.findbugs:jsr305:jar:3.0.2:compile,
org.checkerframework:checker-compat-qual:jar:2.0.0:compile,
com.google.errorprone:error_prone_annotations:jar:2.1.3:compile,
com.google.j2objc:j2objc-annotations:jar:1.1:compile,
org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile,
ch.qos.logback:logback-classic:jar:1.2.3:compile,
ch.qos.logback:logback-core:jar:1.2.3:compile,
org.slf4j:slf4j-api:jar:1.7.25:compile
]

इसी तरह के सवाल का जवाब तुनकी ने stackoverflow.com/questions/39638138/… पर दिया है
निखिल ज़ुरुंगे

@ निखिलजुरंगे लेकिन यहां मैं पोम फाइल बनाकर मावेन प्रोजेक्ट नहीं बनाना चाहता। मैं उपयोग करना चाहता हूंorg.apache.maven.project.MavenProject
प्रमोदा मेंडिस

जानकारी केवल एक मावेन बिल्ड के दौरान उपलब्ध है जिसका अर्थ मावेन प्लगइन के संदर्भ में है। यदि आप बस पोम फाइल को पढ़ते हैं तो आपके पास वो informations नहीं है .... निर्भरता प्रबंधन का कोई संकल्प नहीं है (यदि आप इसका उपयोग करते हैं) आदि
khmarbaise

मैं जानना चाहता हूं कि MavenProjectवस्तु से निर्भरता को हल करने के लिए कोई जावा विधि या वर्ग है
प्रमोदिया मेंडिस

जवाबों:


1

आप public Set<Artifact> getArtifacts()अपनी MavenProjectकक्षा की पद्धति का उपयोग कर सकते हैं, जो सभी निर्भरता का प्रतिनिधित्व करने वाली कलाकृतियों का एक सेट लौटाता है, जिसमें परियोजना पारगमन सहित होती है।

NB: सामग्री आलसी आबादी वाले होते हैं, इसलिए इस आधार पर कि कुछ स्कोप में निर्भरताएँ किस चरण में चलती हैं, शामिल नहीं की जाएंगी। जैसे। यदि केवल संकलन चरण चला है, तो गुंजाइश परीक्षण के साथ निर्भरता शामिल नहीं होगी।

सभी जानकारी प्रलेखन से आ रही है जो आप यहां पा सकते हैं ।


2
मुझे लगता है कि आप मानते हैं कि कोड को मावेन बिल्ड (मावेन प्लगइन के रूप में) के दौरान चलना चाहिए, लेकिन ओपी इसे मावेन रन के बाहर चलाना चाहता है।
JF Meier

@JFMeier हाँ, आप सही हैं। लगता है कि मेरे पास इस उपयोग के मामले का कोई हल नहीं है: /
प्रमोदिया मेंडिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.