2009-12-20 26 views
7

मैं ग्लासफ़िश-मैवेन-प्लगइन (https://maven-glassfish-plugin.dev.java.net/) का उपयोग ग्लासफ़िश v3 (मैं मैक पर हूं और ग्रहण का उपयोग कर रहा हूं) के साथ करने का प्रयास कर रहा हूं और मुझे ऐसा प्रतीत नहीं होता तैनात करने के लिए मेरा वेब ऐप प्राप्त करें। मैं इसमें चल रहा हूं:ग्लासफ़िश v3 और ग्लासफ़िश-मेवेन-प्लगइन (मैक)

मास्टर पासवर्ड को डोमेन प्रारंभ करने की आवश्यकता है। कोई कंसोल नहीं, कोई संकेत संभव नहीं है। आपको या तो --smastermasterpassword = true के साथ डोमेन बनाना चाहिए या --passwordfile विकल्प के साथ एक पासवर्ड फ़ाइल प्रदान करना चाहिए।

यहां मेरी पीओएम फ़ाइल का प्रासंगिक हिस्सा है।

<profiles> 
    <profile> 
     <id>development</id> 
     <activation> 
      <property> 
       <name>phase</name> 
       <value>development</value> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.glassfish.maven.plugin</groupId> 
        <artifactId>maven-glassfish-plugin</artifactId> 
        <version>2.2-SNAPSHOT</version> 
        <configuration> 
         <glassfishDirectory>${glassfish.directory}</glassfishDirectory> 
         <user>${glassfish.user}</user> 
         <passFile>${glassfish.directory}/domains/${project.artifactId}/config/domain-passwords</passFile> 
         <domain> 
          <name>${project.artifactId}</name> 
         </domain> 
         <components> 
          <component> 
           <name>${project.artifactId}</name> 
           <artifact>${project.build.directory}/artifacts/${project.artifactId}.war</artifact> 
          </component> 
         </components> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
     <pluginRepositories> 
      <pluginRepository> 
       <id>ocean</id> 
       <url>http://maven.ocean.net.au/snapshot</url> 
       <releases> 
        <enabled>false</enabled> 
        <updatePolicy>never</updatePolicy> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
        <updatePolicy>always</updatePolicy> 
       </snapshots> 
      </pluginRepository> 
     </pluginRepositories> 
    </profile> 
</profiles> 

यहां प्रारंभ-डोमेन कमांड मैवेन निष्पादित हो रहा है।

asadmin --host स्थानीय होस्ट --port 4848 --उपयोगकर्ता व्यवस्थापक --passwordfile /var/folders/sk/skcc8rAVGSynOBBaOwWN3U+++TI/-Tmp-/mgfp5377058868244877698.tmp --interactive = false --echo = सच --terse = true शुरू डोमेन --debug = false --domaindir/अनुप्रयोग/ग्लासफिश/v3/glassfish/डोमेन --help = false --upgrade = false --verbose = false mvnrepo

--passwordfile एक temp फ़ाइल का उपयोग कर रहा है, इसलिए मुझे लगता है कि यह समस्या है। किसी कारण से passFile पैरामीटर काम नहीं कर रहा है।

कोई विचार? मैं अपनी धारणा के साथ गलत हूँ?

+0

आप सुनिश्चित करें कि आपके पोम वेरिएबल ठीक से हल कर रहे हैं किया? – Bozho

+0

हां, मैंने यह सुनिश्चित किया है कि मेरे पीओएम चर हल हो रहे हैं। – anthonator

उत्तर

11

Fairly Complete Configuration Example में, वहाँ वास्तव में <passFile> तत्व लेकिन विभिन्न लक्ष्यों में से प्रलेखन इस तत्व का उल्लेख नहीं है और इसके बजाय <passwordFile> का उल्लेख करने के लिए एक संदर्भ है (उदाहरण के glassfish:start-domain या glassfish:deploy के लिए देखें)। तो, उसके अनुसार अपनी प्रोफ़ाइल में अपना प्लगइन का विन्यास को अद्यतन करने का प्रयास करें:

<plugin> 
    <groupId>org.glassfish.maven.plugin</groupId> 
    <artifactId>maven-glassfish-plugin</artifactId> 
    <version>2.2-SNAPSHOT</version> 
    <configuration> 
    <glassfishDirectory>${glassfish.directory}</glassfishDirectory> 
    <user>${glassfish.user}</user> 
    <passwordFile>${glassfish.directory}/domains/${project.artifactId}/config/domain-passwords</passwordFile> 
    <domain> 
     <name>${project.artifactId}</name> 
    </domain> 
    <components> 
     <component> 
     <name>${project.artifactId}</name> 
     <artifact>${project.build.directory}/artifacts/${project.artifactId}.war</artifact> 
     </component> 
    </components> 
    </configuration> 
</plugin> 

एक तरफ ध्यान दें के रूप में, मैं maven-embedded-glassfish-plugin जो अपने एम्बेडेड एपीआई का उपयोग कर एक भी JVM में Glassfish चलाने की अनुमति देता सलाह देते हैं। बहुत अच्छा। अधिक जानकारी के लिए Using maven plugin for v3 embedded glassfish देखें।

अद्यतन: मैंने कुछ और परीक्षण किया और वास्तव में मेरी मशीन (श्वास) पर आपकी समस्या को पुन: उत्पन्न नहीं कर सका।

पहले, मैं (<glassfish_home>/bin से) निम्न आदेश को क्रियान्वित करते हुए एक नया डोमेन बनाया:

$ mvn archetype:create -DgroupId=com.mycompany.app \ 
     -DartifactId=maven-glassfish-testcase \ 
     -DarchetypeArtifactId=maven-archetype-webapp 

और अद्यतन: फिर

$ ./asadmin create-domain --savemasterpassword=true maven-glassfish-testcase 

, मैं एक नया webapp Maven के webapp मूलरूप आदर्श उपयोग कर बनाई गई pom.xml ताज़ा रूप से बनाए गए वेबएप के अनुसरण के रूप में:

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>maven-glassfish-testcase</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>maven-glassfish-testcase Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    <glassfish.home>/home/pascal/opt/glassfishv3/glassfish</glassfish.home> 
    <domain.username>admin</domain.username> 
    </properties> 
    <pluginRepositories> 
    <pluginRepository> 
     <id>ocean</id> 
     <url>http://maven.ocean.net.au/snapshot</url> 
     <releases> 
     <enabled>false</enabled> 
     <updatePolicy>never</updatePolicy> 
     </releases> 
     <snapshots> 
     <enabled>true</enabled> 
     <updatePolicy>always</updatePolicy> 
     </snapshots> 
    </pluginRepository> 
    </pluginRepositories> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <finalName>maven-glassfish-testcase</finalName> 
    <plugins> 
     <plugin> 
     <groupId>org.glassfish.maven.plugin</groupId> 
     <artifactId>maven-glassfish-plugin</artifactId> 
     <version>2.2-SNAPSHOT</version> 
     <configuration> 
      <glassfishDirectory>${glassfish.home}</glassfishDirectory> 
      <user>${domain.username}</user> 
      <passwordFile>${glassfish.home}/domains/${project.artifactId}/master-password</passwordFile> 
      <debug>true</debug> 
      <echo>true</echo> 
      <domain> 
      <name>${project.artifactId}</name> 
      <adminPort>4848</adminPort> <!-- mandatory for mvn glassfish:deploy --> 
      </domain> 
      <components> 
      <component> 
       <name>${project.artifactId}</name> 
       <artifact>${project.build.directory}/${project.build.finalName}.war</artifact> 
      </component> 
      </components> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
 
$ mvn glassfish:start-domain 
[INFO] Scanning for projects... 
[INFO] snapshot org.glassfish.maven.plugin:maven-glassfish-plugin:2.2-SNAPSHOT: checking for updates from ocean 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building maven-glassfish-testcase Maven Webapp 
[INFO] task-segment: [glassfish:start-domain] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [glassfish:start-domain {execution: default-cli}] 
[INFO] asadmin --host localhost --port 4848 --user admin --passwordfile /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/master-password --interactive=false --echo=true --terse=true start-domain --debug=true --domaindir /home/pascal/opt/glassfishv3/glassfish/domains --help=false --upgrade=false --verbose=false maven-glassfish-testcase 
[INFO] Started domain: maven-glassfish-testcase 
[INFO] Domain location: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase 
[INFO] Log file: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/logs/server.log 
[INFO] Admin port for the domain: 4848 
[INFO] Debug port for the domain: 9009 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 27 seconds 
[INFO] Finished at: Mon Dec 21 20:16:17 CET 2009 
[INFO] Final Memory: 4M/53M 
[INFO] ------------------------------------------------------------------------ 

आप देख सकते हैं, --passwordfile विकल्प सही ढंग से पारित कर दिया है पोम में निर्दिष्ट फ़ाइल का उपयोग करते हुए: ४६५१०४०३२१० इस स्थापना के साथ, mvn glassfish:start-domain चल निम्नलिखित उत्पादन पैदा करता है। दूसरे शब्दों में, चीजें अपेक्षित के रूप में काम कर रही हैं। शायद इस सेटिंग को डीबग करने के लिए पासवर्ड फ़ाइल के हार्ड कोड वाले पथ से आज़माएं, इसे सिर्फ काम करना चाहिए!

+0

यह सही है। दस्तावेज पासफाइल का संदर्भ देता है। मैंने पासवर्डफाइल की कोशिश की और कोई भाग्य नहीं था। मैं आपके द्वारा उल्लिखित प्लगइन का प्रयास करूंगा। – anthonator

+0

मैं मेवेन-एम्बेडेड-ग्लासफ़िश-प्लगइन काम करने में सक्षम था। यह वही करेगा जो मुझे चाहिए। – anthonator

+0

पास्कल, 'asadmin' कमांड का उपयोग करते समय आपने माना है कि' glassfish_home> 'ग्लासफ़िश वितरण की रूट निर्देशिका है (उदा। '/ उपयोगकर्ता/foo/glassfish3')। फिर पीओएम फ़ाइल में, आपने माना है कि यह '/ग्लासफ़िश 'निर्देशिका है (उदा।' उपयोगकर्ता/foo/glassfish3/glassfish')। – Behrang

1

मुझे यह महसूस करने में थोड़ी देर लग गई कि मैंने मैवेन-ग्लासफ़िश-प्लगइन कॉन्फ़िगरेशन में गलती से "adminPassword" संपत्ति छोड़ी है (इसलिए मेरे पास व्यवस्थापक पासवर्ड और पासवर्ड दोनों सेट थे)। प्लगइन ने अभी भी अपने स्वयं के बजाय अस्थायी पासवर्डफाइल का उपयोग किया, जिसके परिणामस्वरूप उपर्युक्त त्रुटि हुई।

शायद ज़रुरत पड़े किसी और के रूप में मुझे के रूप में बेवकूफ है;)

संबंधित मुद्दे