2009-09-04 12 views
23

के साथ इंस्टॉलर कैसे बनाएं I Ant से Maven से मध्यम आकार के जावा एप्लिकेशन के निर्माण को माइग्रेट कर रहा हूं। मैं आसानी से मूल निर्माण सामग्री माइग्रेट कर सकता था, लेकिन मैं मेवेन बिल्ड से इंस्टॉलर पैकेज भी बनाना चाहता हूं। चींटी प्लगइन के माध्यम से मूल चींटी स्क्रिप्ट को कॉल करना सबसे आसान तरीका है, लेकिन मैंने सोचा कि शायद मुझे कुछ मैवेन सपोर्ट के लिए पहले देखना चाहिए।मेवेन

मैं विभिन्न प्लेटफार्मों के लिए कई अलग अलग संस्थापक बनाने की आवश्यकता होगी:

  • विंडोज 32/64 बिट
  • लिनक्स 32/64 बिट
  • MacOS 32/64 बिट

लिनक्स के लिए अब मुझे लगता है कि हमारे पास केवल tar.gz है और कुछ बैश स्क्रिप्ट डिमन्स शुरू करने के लिए हैं - एक डेबियन/आरपीएम पैकेज भी निर्भर पैकेज परिभाषाओं के साथ बहुत अच्छा होगा। विंडोज इंस्टालर के लिए हम नलसोफ्ट इंस्टॉलर का उपयोग करते हैं। मुझे नहीं पता कि मैकोज़ बंडल अब कैसे इकट्ठा किया गया है।

क्या मेवेन से ऐसा करने के लिए वहां कोई उपकरण है (या कम से कम इसका हिस्सा)?

+0

ब्याज से, आप कैसे गए और आपने माइग्रेशन कैसे प्राप्त किया? –

उत्तर

18

मैं IzPack maven pluginappassembler-maven-plugin का उपयोग करते हैं तो आप एक पूर्ण विकसित संस्थापक की जरूरत है, या अगर आप बस जावा सेवाओं के लिए डेमॉन उत्पन्न करने के लिए की जरूरत है।

वहाँ भी NSIS, Debian, और RPM पैकेजिंग के लिए प्लग इन हैं, लेकिन उन का उपयोग कर मतलब है कि आप, प्रत्येक मंच के लिए विन्यास बनाए रखने के लिए है पर दूसरी ओर IzPack आप Windows XP/Vista/2003/2000 के लिए एक इंस्टॉलर उत्पन्न करने के लिए अनुमति देता है , मैक ओएस एक्स, सोलारिस, लिनक्स और * बीएसडी।


एपसम्बलर प्लगइन प्रत्येक प्लेटफ़ॉर्म के लिए जेएसडब्ल्यू डिमन्स जेनरेट करने का लक्ष्य प्रदान करता है। मैं इसके लिए एक Maven प्लगइन नहीं दिख रहा है, लेकिन izPack के साथ तुलना में, यह बहुत अधिक पेशेवर लग रहा है -

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>appassembler-maven-plugin</artifactId> 
    <version>1.0</version> 
    <execution> 
    <id>generate-jsw-scripts</id> 
    <phase>package</phase> 
    <goals> 
     <goal>generate-daemons</goal> 
    </goals> 
    <configuration> 
     <daemons> 
     <daemon> 
      <id>myApp</id> 
      <mainClass>name.seller.rich.MainClass</mainClass> 
      <commandLineArguments> 
      <commandLineArgument>start</commandLineArgument> 
      </commandLineArguments> 
      <platforms> 
      <platform>jsw</platform> 
      </platforms>    
     </daemon> 
     </daemons> 
     <target>${project.build.directory}/appassembler</target> 
    </configuration> 
    </execution> 
</plugin> 
+0

जैसे बहुत लिनक्स नहीं है, मैं अपने विंडोज़ वितरण के लिए इज़पैक का भी उपयोग करता हूं, लेकिन लिनक्स इंस्टॉलर बनाया गया है जो बहुत लिनक्स नहीं है और ओएसएक्स इंस्टॉलर एक बहुत बुरा विचार है, मैं एक अलग इंस्टॉलर का उपयोग करूंगा ओएसएक्स के लिए। –

1

मुझे यकीन नहीं है कि मुझे सही सवाल है या नहीं। क्या आपने कभी मेवेन असेंबली की कोशिश की है?

http://maven.apache.org/plugins/maven-assembly-plugin/

मैं अपने प्रश्न के लिए मेरा पहला विचार था।

1

वहां कुछ प्लगइन्स हैं जो आप चाहते हैं कि कुछ करेंगे।

.deb

.rpm

nullsoft

2

आप IzPack और उस उद्देश्य के लिए IzPack Maven प्लगइन का उपयोग कर सकते हैं। यह मेरे लिए काफी अच्छी तरह से काम करता है: http://izpack.codehaus.org/izpack-maven-plugin/

+0

परेशानी यह है कि परिणामस्वरूप izpack बनाया गया इंस्टॉलर –

0

मैं Installjammer में देख रहा हूँ: यहाँ एक उदाहरण विन्यास है।

0

BitRock InstallBuilder विंडोज एक्सई इंस्टॉलर्स, लिनक्स बाइनरी/आरपीएम/डीईबी और ओएस एक्स इंस्टॉलर उत्पन्न करने के लिए मेवेन (और अन्य सीआई बिल्ड टूल्स) के साथ उपयोग किया जा सकता है।यह वाणिज्यिक है लेकिन हमारे पास छोटी कंपनियों/एकल डेवलपर्स और ओपन सोर्स प्रोजेक्ट्स के लिए मुफ्त लाइसेंस के लिए छूट है (अस्वीकरण, मैं इंस्टॉलबिल्डर का लेखक हूं)