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
]

অনুরূপ প্রশ্ন এ Tunaki দ্বারা উত্তর stackoverflow.com/questions/39638138/...
নিখিল Zurunge

@ নিখিলজুরুঞ্জ তবে এখানে আমি কোনও পম ফাইল তৈরি করে কোনও মাভেন প্রকল্প তৈরি করতে চাই না। আমি ব্যবহার করতে চাইorg.apache.maven.project.MavenProject
প্রমোদ্যা মেন্ডিস

এই তথ্যটি কেবলমাত্র মভেন বিল্ড চলাকালীন পাওয়া যায় যার অর্থ একটি ম্যাভেন প্লাগইন প্রসঙ্গে। আপনি কেবল পম আপনি যে ফাইলটি সেসব তথ্য নেই পড়ুন .... আছে (যদি আপনি তা ব্যবহার করুন) dependencyManagement কোন রেজল্যুশন ইত্যাদি
khmarbaise

আমি জানতে চাই যে কোনও জাভা পদ্ধতি বা শ্রেণি MavenProjectঅবজেক্ট থেকে নির্ভরতা সমাধানের জন্য রয়েছে
প্রমোদ্যা মেন্ডিস

উত্তর:


1

আপনি public Set<Artifact> getArtifacts()আপনার MavenProjectশ্রেণীর পদ্ধতিটি ব্যবহার করতে পারেন যা ট্রানজিটিভগুলি সহ প্রকল্পের সমস্ত নির্ভরতা উপস্থাপন করে এমন শিল্পকর্মগুলির একটি সেট প্রদান করে যা।

এনবি: বিষয়বস্তুগুলি অলসভাবে জনবহুল, সুতরাং কয়েকটি স্কোপে কী ধাপে ধাপে নির্ভরতা চালানো হয় তার উপর নির্ভর করে অন্তর্ভুক্ত করা হবে না। যেমন। যদি কেবল সংকলনের পর্যায়টি চালিত হয়, স্কোপ টেস্টের সাথে নির্ভরতাগুলি অন্তর্ভুক্ত করা হবে না।

আপনি এখানে খুঁজে পেতে পারেন যে ডকুমেন্টেশন থেকে সমস্ত তথ্য আসছে ।


2
আমি অনুমান করি আপনি ধরে নিয়েছেন যে কোডটি ম্যাভেন বিল্ড চলাকালীন চলবে (একটি ম্যাভেন প্লাগইন হিসাবে), তবে ওপি এটি ম্যাভেন রানের বাইরে চালাতে চায়।
জেএফ মেয়ার

@ জেএফএমিয়ার হ্যাঁ, আপনি ঠিক বলেছেন। মনে হচ্ছে এই ব্যবহারের ক্ষেত্রে আমার কাছে কোনও সমাধান নেই: /
প্রমোদ্যা মেন্ডিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.