আবদ্ধ গোলের সাথে চিকিত্সা পর্যায়ক্রমে তালিকা দেওয়ার জন্য মাভেন কমান্ড?


104

আমি কেবল ম্যাভেন শিখছি, এবং তাই এটি স্পষ্টতই প্রকাশিত হতে পারে তবে প্রদত্ত প্রকল্পের জন্য প্রতিটি মেভেন লাইফসাইकल পর্বের সাথে সম্পর্কিত লক্ষ্যগুলি তালিকাভুক্ত করার সহজ উপায় আমি খুঁজে পাচ্ছি না।

আমি দেখেছি যে মাভেন ডিফল্ট জীবনচক্র পর্যায় এবং সম্পর্কিত ডিফল্ট লক্ষ্যগুলি এখানে নথিভুক্ত করা হয়েছে । আমার এ পর্যন্ত উপলব্ধি হ'ল প্রতিটি পম.এক্সএমএল প্রতিটি জীবনচক্র পর্যায়ে অতিরিক্ত লক্ষ্যগুলি বাঁধতে পারে।

সুতরাং, কোন প্রদত্ত প্রকল্পের জন্য প্রতিটি লাইফসাইকেল পর্বের জন্য লক্ষ্যগুলি নির্ধারণের জন্য কোনও এমভিএন কমান্ড রয়েছে? যদি তা না হয় তবে আমার ধারণা, প্রতিটি নতুন মাভেন প্রকল্পের জন্য এটি খুঁজে পাওয়ার জন্য আমাকে কেবল pom.xML দেখতে হবে?

উত্তর:


128

mvn help:describe -Dcmd=compile (বা অন্য কোনও বৈধ পর্ব)


3
এই কমান্ডের আউটপুটে পর্যায়ক্রমে সীমাবদ্ধ লক্ষ্যগুলি দেখা হচ্ছে না। পরিবর্তে, আমি প্লাগিনগুলি / পর্যায়গুলি দেখছি।
দিমিত্রি মিনকভস্কি

মাবেয় আমি প্রশ্নটি ভুল বুঝতে পেরেছি, তবে এই আদেশটি কি "বিপরীত অনুসন্ধান" প্রশ্নের (এই লক্ষ্যে থাকা সমস্ত পর্যায়ের তালিকা তৈরি করা)? লিঙ্কটি বলে "একটি ম্যাভেন প্লাগইন এবং / অথবা লক্ষ্যগুলির জন্য (ওরফে মোজো - মাভেন প্লেইন ওল্ড জাভা অবজেক্ট) এর বৈশিষ্ট্যগুলির তালিকা প্রদর্শন করে"
ব্যবহারকারী 2039709

131

buildplan-maven-pluginকতটা গোল পর্যায়ক্রমে আবদ্ধ হয় জন্য একটি চমৎকার টুল।

নীচে আপনি চালাতে পারেন এমন কমান্ডের উদাহরণ রয়েছে। কমান্ডগুলি প্লাগইনটি ইতিমধ্যে ইনস্টল না থাকলে স্বয়ংক্রিয়ভাবে ডাউনলোড এবং ইনস্টল হবে।

তারা কার্যকর করার আদেশ অনুসারে লক্ষ্যগুলি তালিকাভুক্ত করুন

> mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list

PLUGIN                  | PHASE                  | ID                    | GOAL
--------------------------------------------------------------------------------------------
maven-enforcer-plugin   | validate               | default               | enforce
maven-dependency-plugin | process-sources        | default               | copy-dependencies
maven-resources-plugin  | process-resources      | default-resources     | resources
maven-compiler-plugin   | compile                | default-compile       | compile
maven-resources-plugin  | process-test-resources | default-testResources | testResources
maven-compiler-plugin   | test-compile           | default-testCompile   | testCompile
maven-surefire-plugin   | test                   | default-test          | test
maven-jar-plugin        | package                | default-jar           | jar
maven-assembly-plugin   | package                | make-assembly         | single
maven-install-plugin    | install                | default-install       | install
maven-deploy-plugin     | deploy                 | default-deploy        | deploy

পর্যায়ক্রমে গ্রুপ গোল

> mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list-phase

validate -----------------------------------------------------------------
    + maven-enforcer-plugin   | default               | enforce
process-sources ----------------------------------------------------------
    + maven-dependency-plugin | default               | copy-dependencies
process-resources --------------------------------------------------------
    + maven-resources-plugin  | default-resources     | resources
compile ------------------------------------------------------------------
    + maven-compiler-plugin   | default-compile       | compile
process-test-resources ---------------------------------------------------
    + maven-resources-plugin  | default-testResources | testResources
test-compile -------------------------------------------------------------
    + maven-compiler-plugin   | default-testCompile   | testCompile
test ---------------------------------------------------------------------
    + maven-surefire-plugin   | default-test          | test
package ------------------------------------------------------------------
    + maven-jar-plugin        | default-jar           | jar
    + maven-assembly-plugin   | make-assembly         | single
install ------------------------------------------------------------------
    + maven-install-plugin    | default-install       | install
deploy -------------------------------------------------------------------
    + maven-deploy-plugin     | default-deploy        | deploy

প্লাগইন দ্বারা গ্রুপ লক্ষ্য

> mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list-plugin

maven-enforcer-plugin ---------------------------------------------------
    + validate               | default               | enforce
maven-dependency-plugin -------------------------------------------------
    + process-sources        | default               | copy-dependencies
maven-resources-plugin --------------------------------------------------
    + process-resources      | default-resources     | resources
    + process-test-resources | default-testResources | testResources
maven-compiler-plugin ---------------------------------------------------
    + compile                | default-compile       | compile
    + test-compile           | default-testCompile   | testCompile
maven-surefire-plugin ---------------------------------------------------
    + test                   | default-test          | test
maven-jar-plugin --------------------------------------------------------
    + package                | default-jar           | jar
maven-assembly-plugin ---------------------------------------------------
    + package                | make-assembly         | single
maven-install-plugin ----------------------------------------------------
    + install                | default-install       | install
maven-deploy-plugin -----------------------------------------------------
    + deploy                 | default-deploy        | deploy

মন্তব্য

ডিফল্টরূপে, লক্ষ্যগুলি সেই কার্যগুলির জন্য অনুসন্ধান করে যা যদি ব্যবহারকারী প্রার্থনা করে তবে চলবে mvn deploy। পর্যায়ক্রমে যেমন cleanঅন্তর্ভুক্ত করা হবে না। অনুসন্ধানে একাধিক পর্যায় অন্তর্ভুক্ত করতে, buildplan.tasksসম্পত্তিটি ব্যবহার করুন :

> mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list -Dbuildplan.tasks=clean,deploy

33
এটি সত্যই ডিফল্টরূপে মাভেনে তৈরি করা উচিত।
ল্যানক্সিক্স

5
পোম সামঞ্জস্য না করেও কাজ করে:mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list -Dbuildplan.tasks=clean,install,deploy
FibreFoX

1
এই উত্তরটি সঠিক হবে যদি এটি ফাইবারফক্সের মন্তব্য দিয়ে শুরু করা হয়।
ইউএফএল 1138

আমি মনে করি এই উত্তরটি গৃহীত উত্তরের চেয়ে অনেক ভাল।
পানায়োটিস

আমি @ আইনক্সেক্সের সাথে একমত যে এটি ডিফল্টরূপে ম্যাভেনের সাথে যুক্ত করা উচিত। দুর্দান্ত প্লাগ-ইন!
মিগুয়েল পারদাল

18

একটি সরঞ্জাম যা সহায়তা করে তা হ'ল mvn help:effective-pomএটি সমস্ত ভেরিয়েবল এবং সমস্ত প্যারেন্ট পুমের প্রসারণ সহ POM মুদ্রণ করবে। এটি মাভেন কী দেখেছে তা বুঝতে সহায়তা করে। এর থেকে, অতিরিক্ত সমস্ত লক্ষ্য (যা সাধারণত এতগুলি নয়) সন্ধান করা বেশ সহজ।

সবচেয়ে বড় সমস্যা হ'ল অন্তর্নিহিত লক্ষ্যগুলি (অর্থাত্ যখন প্লাগইনটি স্বয়ংক্রিয়ভাবে জীবনকালের কিছু ধাপে নিজেকে সরিয়ে দেয়)। আসলে মাভেনকে চালানো ছাড়া এগুলি দেখার সহজ উপায় নেই। এটি ম্যাভেন ৩-এ আরও ভাল হওয়া উচিত then ততক্ষণে, মাভেন চালান -Xযা দিয়ে ডিবাগ আউটপুট প্লাস বর্তমান পর্যায়ে এবং কোন প্লাগইনগুলি কার্যকর হয় তা মুদ্রণ করবে।


ধন্যবাদ, অ্যারন, এটি সহায়ক ছিল!
আপগ্রেডডভেভ

ম্যাভেন 3 এ এটি কীভাবে আরও ভাল হচ্ছে? এটি কি বর্তমান আলফা -6 এ রয়েছে?
লার্স কর্নেলিয়াসন

2
জেসন আমাকে বলেছিল যে নতুন ম্যাভেন 3 আসলে এটি শুরু করার আগে পুরো বিল্ডটির একটি মডেল তৈরি করবে। এর অর্থ হ'ল আপনি আদেশগুলি না চালিয়ে হুক পরীক্ষা করতে (এবং মুদ্রণ করতে পারেন)।
অ্যারন দিগুল্লা

কার্যকরী পোমকে প্রতিটি গোলের আসল বাঁধাই পর্বটি দেখাতে হবে যা বর্তমানে তা করছে না ... দীর্ঘশ্বাস
ফেলেছে

1

যদি মাভেনের সাথে না থাকলে তবে এম 2 ই ব্যবহার করে আপনি একটি ব্লক প্লাগইনে যে ব্লকটি ব্যবহার করতে পারেন তা ব্যবহার করে এটি করতে পারেন:


final IMavenProjectRegistry projectRegistry = MavenPlugin.getMavenProjectRegistry();
    final IMavenProjectFacade facade = projectRegistry.getProject(project);
    projectRegistry.execute(facade, new ICallable<Void>() {
        public Void call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
            MavenProject mavenProject = facade.getMavenProject(monitor);
            List<MojoExecution> mojoExecutions = ((MavenProjectFacade) facade).getMojoExecutions(monitor);
            LifecycleMappingResult mappingResult = LifecycleMappingFactory.calculateLifecycleMapping(
                    mavenProject, mojoExecutions, facade.getResolverConfiguration().getLifecycleMappingId(),
                    monitor);
            Map<MojoExecutionKey, List<IPluginExecutionMetadata>> mojoExecutionMapping = mappingResult
                    .getMojoExecutionMapping();

            Map<String, List<MojoExecutionKey>> phases = new LinkedHashMap<String, List<MojoExecutionKey>>();
            for (MojoExecutionKey execution : mojoExecutionMapping.keySet()) {
                List<MojoExecutionKey> executions = phases.get(execution.getLifecyclePhase());
                if (executions == null) {
                    executions = new ArrayList<MojoExecutionKey>();
                    phases.put(execution.getLifecyclePhase(), executions);

                    }
                    executions.add(execution);
                }

পুরো উত্স দেখুন

ইতিমধ্যে এতে প্রয়োগ করা হয়েছে:

http://marketplace.eclipse.org/content/phases-and-goals

এটি পর্যায়ক্রমে গোলের অ্যাসোসিয়েশন গণনা করার জন্য এম 2e এর ক্ষমতাকে ব্যবহার করে। আমি এটি ম্যাভেন স্তরেও সমাধান করার চেষ্টা করছি।


দয়া করে লিঙ্কটি কেবল উত্তর পোস্ট করবেন না
বিশ

1

আমি চাদের উত্তরটি একটি স্ক্রিপ্টে রেখেছি (সুতরাং আমাকে প্লাগইনটির নামটি মনে করতে হবে না যা আসলেই দীর্ঘ। এটিকে আপনার bin / বিন / ফোল্ডারে রাখুন যাতে আপনি এটি যে কোনও জায়গায় ব্যবহার করতে পারেন।

#!/usr/bin/env bash
# Created based on https://stackoverflow.com/a/35610377/529256
debug=false

goal='list-phase'
build_plan='clean,deploy'
working_directories=""

for (( i=1; i<=$#; i++ )) do
    case ${!i} in

        -h|--help)
            programName=$( basename ${0} )
            echo "Lists the goals of mvn project(s) by phase in a table";
            echo
            echo "Usage:";
            echo "    ${programName} -d|--debug -g|--goal goal -b|--build_plan build_plan [*directory]";
            echo
            echo "           --goal  The goal for the buildplan-maven-plugin (default: $goal)"
            echo "                   (possible values: list, list-plugin, list-phase)"
            echo
            echo "     --build_plan  The value of the buildplan.tasks parameter (default: $build_plan)"
            echo "                   (examples: 'clean,install', 'deploy', 'install', etc...) "
            echo
            echo "     [*directory]  The directories (with pom.xml files) to run the command in"
            exit 0;
            ;;
        -d|--debug)
            debug=true;
            echo "debug = ${debug}";
            ;;
        -b|--build_plan)
            ((i++))
            build_plan="${!i}"
            ;;
        -g|--goal)
            ((i++))
            goal="${!i}"
            ;;
        *)
            working_directory="${!i}";
            if [ ! -e "${working_directory}" ]; then
                echo "'${working_directory}' doesn't exist";
                exit 1;
            fi;
            if [ -z "${working_directories}" ]; then
                working_directories="$working_directory"
            else
                working_directories="$working_directories ${!i}"
            fi;
            ;;
    esac;
done;

if [ -z "${working_directories}" ]; then
    working_directories="$PWD"
fi

if [ ${debug} = true ]; then
    echo "working_directories=$working_directories"
    echo "goal=$goal"
    echo "build_plan=$build_plan"
fi

for workingDirectory in ${working_directories}; do
    pushd ${workingDirectory} > /dev/null
    echo "cd $workingDirectory"
    echo "mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:${goal} -Dbuildplan.tasks=${build_plan}"
    mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:${goal} -Dbuildplan.tasks=${build_plan}
    popd > /dev/null
done;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.