কমান্ড লাইনে maven সম্পত্তি কীভাবে ওভাররাইড করা যায়?


91

আমি মাভেন .4.০.৪ দ্বারা চালিত নীচের সরল পোমটি পেয়েছি।

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

</project>

আমি এইভাবে কমান্ড লাইনে ডিফল্ট সেটিংসকে ওভাররাইড করার চেষ্টা করছি:

mvn -Dproject.build.finalName=build clean package

তবে এটি উপেক্ষা করা হয়েছে, এবং আমি পেয়েছি test-1.0.jar। আমি অন্য একটি বৈশিষ্ট্য যেমন আউটপুট ডিরেক্টরি, ডিরেক্টরি, আর্টিফ্যাক্টআইডি পরিবর্তন করার চেষ্টা করেছি, কিন্তু ব্যর্থও হয়েছি।

এই জিনিসটি করার উপযুক্ত উপায় কী?

উত্তর:


135

পিওএমের পরিচিতি দেখুন

চূড়ান্ত নামটি তৈরি করা হয়:

<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
</build>

সমাধানগুলির মধ্যে একটি হ'ল নিজস্ব সম্পত্তি যুক্ত করা:

<properties>
    <finalName>${project.artifactId}-${project.version}</finalName>
</properties>
<build>
    <finalName>${finalName}</finalName>
 </build>

এবং এখন চেষ্টা করুন:

mvn -DfinalName=build clean package


4
এটা কি একমাত্র উপায়? আমি যদি পিওএম ফাইলটিতে পরিবর্তন করতে না পারি তবে কী হবে?
glaz666

4
finalNameপিওএম পরিবর্তন না করে আমাকে কমান্ড লাইনের মাধ্যমে ওভাররাইড করতে হবে । এটা কি করণীয়?
glaz666

4
ঠিক আছে, এটি অনুপলব্ধ, কারণ আপনি কেবল ব্যবহারকারী-সংজ্ঞায়িত বৈশিষ্ট্যগুলিকে ওভাররাইড করতে পারেন, ম্যাভেন প্রপার্টি নয় কারণ তারা মডেল শ্রেণির বৈশিষ্ট্য। সমাধানটি উত্তরে বর্ণিত হয়েছে।
glaz666

7
একাধিক পরামিতি ওভাররাইড করার জন্য একাধিক-ডি পতাকা ব্যবহার করুন। কেউ যদি ভাবছেন।
ম্যাথিয়াস

4
অতিরিক্তভাবে, আপনি যে সম্পত্তিটি ওভাররাইড করার চেষ্টা করছেন তার মধ্যে যদি সময়সীমা থাকে তবে আপনার এটির জন্য একক উদ্ধৃতিতে এটি আবদ্ধ করতে হতে পারে:mvn '-Dproject.build.finalName=build' clean package
Xantix
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.