मावेन: परियोजना के लिए युद्ध फ़ाइल का नाम कैसे बदला जाए?


91

मेरे पास birdनिम्नलिखित घटकों के साथ एक परियोजना हैpom.xml

   <groupId>com.myorg</groupId>
    <artifactId>bird</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>bird</name>

    <modules>
        <module>persistence</module>
        <module>business</module>
        <module>service</module>
        <module>web</module>
    </modules>

और वेब मॉड्यूल के रूप में

   <parent>
        <artifactId>bird</artifactId>
        <groupId>com.myorg</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>web</artifactId>
    <packaging>war</packaging>  

वेब मॉड्यूल युद्ध फ़ाइल का नाम web-1.0-SNAPSHOT.war
कैसे बना सकता है, मैं इसका नाम बदलकर कैसे उपयोग कर सकता हूं bird.war?


क्या यह मदद करता है? stackoverflow.com/q/3265544/422353
madth3

जवाबों:


205

आप युद्ध का उत्पादन करने वाले वेब मॉड्यूल में निम्नलिखित का उपयोग कर सकते हैं:

<build>
  <finalName>bird</finalName>
 . . .
</build>

यह एक फ़ाइल की ओर जाता है जिसे बर्ड.वर कहा जाता है जब लक्ष्य "युद्ध: युद्ध" का उपयोग किया जाता है।


जब मैं अपने प्रोजेक्ट को "पक्षी.वार" नाम से संकलित करता हूं तो मुझे एक युद्ध मिलता है जो नामांकित है "bird.war.war"।
कलसचनी

@ कलसाची सिर्फ 'बर्ड' का इस्तेमाल करते हैं, न कि 'बर्ड.वर' का - विभिन्न बिल्ड प्लगइन्स में से प्रत्येक स्वचालित रूप से उपयुक्त फ़ाइल एक्सटेंशन को जोड़ता है (युद्ध, जार, कान)
ZachOfAllTrades

11
या अधिक आम तौर पर, हम उपयोग कर सकते हैं:<finalName>${project.artifactId}</finalName>
गुइल्यूम हस्टा

इस जवाब ने मेरी समस्या को हल कर दिया, जहां माता-पिता के नाम के साथ एक सबमॉड्यूल का युद्ध उत्पन्न हो रहा था, जिसे मैं नहीं चाहता था। समस्या यह थी कि <अंतिम नाम> तत्व मूल POM में सेट किया गया था। उस तत्व को हटाने से सबमॉडल के सही नाम के साथ युद्ध फाइल उत्पन्न हुई।
ओलिवर हर्नांडेज़

IDEA 20156 2.4 में मुझे अतिरिक्त समस्या थी कि यह हर बार पुरानी युद्ध फ़ाइल को जनरेट करता रहा जिसे मैंने Payara Glassfish 4.1 पर तैनात करने की कोशिश की। जब ऐसा होता है कि ओपन मॉड्यूल सेटिंग -> कलाकृतियां -> आउटपुट लेआउट पर जाएं और युद्ध फ़ाइल को अपने इच्छित परिणाम में बदलें। मुझे इसकी आवश्यकता थी क्योंकि IDEA में युद्ध फ़ाइल नाम के साथ संदर्भ रूट परिवर्तन होता है जो एक दर्द होता है जब आपके पास एक अलग कॉन्फ़िगर किया गया होता है। .प्रोफ़ाइल फ़ाइल।
Dr4gon

25

आपको युद्ध प्लगइन को कॉन्फ़िगर करने की आवश्यकता है:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <warName>bird.war</warName>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

अधिक जानकारी यहाँ


11
FYI करें: यह उत्तर अब मान्य नहीं है (maven-war-plugin संस्करण 3.0.0 और उसके बाद से)। देखें issues.apache.org/jira/browse/MWAR-373
auke

<warName> काम करता है (कम से कम 3.2.3 में युद्ध-प्लगइन) लेकिन यह हमेशा "- <classifier> .war" को जोड़ता है, जहां <classifier> डिफ़ॉल्ट रूप से खाली होता है और इसे <कॉन्फ़िगरेशन> के अंदर सेट किया जा सकता है। मैं "myApp ## 2020-05-29_10-24-" प्राप्त करने के लिए बिल्ड-हेल्पर-मावेन-प्लगइन द्वारा सेट "buildDateTimeFile" के साथ <warName> $ {project.build.finalName} ## $ {buildDateTimeFile} </ warName> का उपयोग करता हूं। 00.war "। यह विशेष रूप से उपयोगी है यदि आप एक बार में कई युद्ध-फाइलें (देव / परीक्षण / ठेस) बनाते हैं।
थिएस

6

यदि आप मावेन प्रोजेक्ट का उपयोग कर रहे हैं तो .war फ़ाइल नाम को संशोधित करने के लिए आप नीचे दिए गए चरण का अनुसरण कर सकते हैं।

अपने मावेन प्रोजेक्ट की pom.xml फ़ाइल खोलें और टैग पर जाएं <build></build>,

  1. इस टैग के बीच अपना वांछित नाम दें <finalName></finalName>:।

    पूर्व। :<finalName>krutik</finalName>

    इसे तैनात करने के बाद .war के साथ आप url एक्सेस कर पाएंगे:
    http: // localhost: 8080 / krutik /

  2. यदि आप स्लैश '/' के साथ url का उपयोग करना चाहते हैं तो आपको नीचे दिए गए नाम को निर्दिष्ट करना होगा:

    पूर्व: <finalName>krutik#maheta</finalName>

    इसे तैनात करने के बाद .war के साथ आप url एक्सेस कर पाएंगे:
    http: // localhost: 8080 / krutik / mahata


5

लुकअप pom.xml> प्रोजेक्ट टैग> बिल्ड टैग।

मैं नीचे समाधान चाहूंगा।

<artifactId>bird</artifactId>
<name>bird</name>

<build>
    ...
    <finalName>${project.artifactId}</finalName>
  OR
    <finalName>${project.name}</finalName>
    ...
</build>

मेरे लिए काम किया। ^^

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