कमांड लाइन में मावेन संपत्ति को कैसे ओवरराइड करें?


91

मेरे पास Maven 3.0.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

POM का परिचय देखें

अंतिम नाम इस प्रकार बनाया गया है:

<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


5
क्या ऐसा करने का एकमात्र तरीका है? क्या होगा अगर मैं POM फ़ाइल में परिवर्तन नहीं कर सकता हूँ?
glaz666

1
मुझे finalNamePOM को बदले बिना कमांड लाइन के माध्यम से ओवरराइड करने की आवश्यकता है । क्या वह करने योग्य है?
glaz666

1
ठीक है, यह अनुपलब्ध है, क्योंकि आप केवल उपयोगकर्ता-परिभाषित गुणों को ओवरराइड कर सकते हैं, न कि मैवेन गुणों को क्योंकि वे मॉडल वर्ग के गुण हैं। समाधान उत्तर में वर्णित है।
glaz666

7
कई मापदंडों को ओवरराइड करने के लिए, कई-डी झंडे का उपयोग करें। अगर किसी को आश्चर्य हो रहा है।
Matthias

3
इसके अतिरिक्त, यदि आप जिस संपत्ति को ओवरराइड करने की कोशिश कर रहे हैं, वह अवधि है, तो आपको इसे एकल उद्धरणों में संलग्न करना पड़ सकता है:mvn '-Dproject.build.finalName=build' clean package
Xantix
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.