2010-04-03 15 views
5

मैवेन का उपयोग कर GoogleAppEngine के लिए अपना एप्लिकेशन बनाने की कोशिश कर रहा हूं। के रूप में GoogleAppEngine पर प्रलेखन के अनुसार DataNucleus documentationGoogleAppEngine के लिए मेवेन बिल्डिंग, जेडीओ पुस्तकालयों को शामिल करने के लिए मजबूर?

<plugin> 
       <groupId>org.datanucleus</groupId> 
       <artifactId>maven-datanucleus-plugin</artifactId> 
       <version>1.1.4</version> 
       <configuration> 
        <log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration> 
        <verbose>true</verbose> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>process-classes</phase> 
         <goals> 
          <goal>enhance</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

पर सुझाव दिया मैं अपने पोम जो निर्माण के बाद "बढ़ाने" मेरे कक्षाएं चाहिए करने के लिए निम्न जोड़ लेते हैं तो JDO या जेपीए उपयोग करने के लिए विकल्प नहीं है, मैं मैंने जेपीए का उपयोग करने के लिए चुना है क्योंकि मैंने इसे पहले इस्तेमाल किया है। जब मैं (इससे पहले कि मैं GAE पर अपलोड) अपने प्रोजेक्ट का निर्माण करने के mvn clean package उपयोग करने का प्रयास मैं निम्नलिखित उत्पादन

[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Failed to resolve artifact. 

Missing: 
---------- 
1) javax.jdo:jdo2-api:jar:2.3-ec 

    Try downloading the file manually from the project website. 

    Then, install it using the command: 
     mvn install:install-file -DgroupId=javax.jdo -DartifactId=jdo2-api -Dversion=2.3-ec -Dpackaging=jar -Dfile=/path/to/file 

    Alternatively, if you host your own repository you can deploy the file there: 
     mvn deploy:deploy-file -DgroupId=javax.jdo -DartifactId=jdo2-api -Dversion=2.3-ec -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] 

    Path to dependency: 
    1) org.datanucleus:maven-datanucleus-plugin:maven-plugin:1.1.4 
    2) javax.jdo:jdo2-api:jar:2.3-ec 

---------- 
1 required artifact is missing. 

for artifact: 
    org.datanucleus:maven-datanucleus-plugin:maven-plugin:1.1.4 

from the specified remote repositories: 
    __jpp_repo__ (file:///usr/share/maven2/repository), 
    DN_M2_Repo (http://www.datanucleus.org/downloads/maven2/), 
    central (http://repo1.maven.org/maven2) 


[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3 seconds 
[INFO] Finished at: Sat Apr 03 16:02:39 BST 2010 
[INFO] Final Memory: 31M/258M 
[INFO] ------------------------------------------------------------------------ 

कोई भी विचार कारण है कि मैं इस तरह के एक त्रुटि प्राप्त करना चाहिए? मैंने अपने पूरे स्रोत कोड के माध्यम से खोज की है और मैं कहीं भी जेडीओ का संदर्भ नहीं दे रहा हूं, इसलिए जब तक ऐप इंजन पुस्तकालयों की आवश्यकता न हो, मुझे यकीन नहीं है कि मुझे यह संदेश क्यों मिलता है।

उत्तर

11

DataNucleus Maven प्लगइन (जेपीए के लिए भी) here दस्तावेज और के रूप में के रूप में पता लगाने में सूचना दी JDO2 एपीआई जार की आवश्यकता है:

Path to dependency: 
    1) org.datanucleus:maven-datanucleus-plugin:maven-plugin:1.1.4 
    2) javax.jdo:jdo2-api:jar:2.3-ec 

अजीब बात यह है कि jdo2-api-2.3-ec.jarDataNucleus Maven भंडार में (है प्लगइन के POM में घोषित किया गया है) और मेवेन में इस भंडार की जांच की गई है क्योंकि हम ट्रेस में देख सकते हैं।

अद्यतन: ठीक है, इस निश्चित रूप से अजीब है और मैं नहीं जानता कि क्यों निर्माण (निर्भरता सीमाओं के साथ हो सकता है एक समस्या) वास्तव में विफल हो रहा है। समाधान के लिए, प्लगइन में निर्भरता के रूप में JDO2 एपीआई जार की घोषणा:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.datanucleus</groupId> 
     <artifactId>maven-datanucleus-plugin</artifactId> 
     <version>1.1.4</version> 
     <configuration> 
      <log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration> 
      <verbose>true</verbose> 
     </configuration> 
     <executions> 
      <execution> 
       <phase>process-classes</phase> 
       <goals> 
        <goal>enhance</goal> 
       </goals> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
      <groupId>javax.jdo</groupId> 
      <artifactId>jdo2-api</artifactId> 
      <version>2.3-ec</version> 
      <scope>runtime</scope> 
      </dependency> 
     </dependencies>   
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 

</project> 

इस निर्भरता घोषित के साथ, जार डाउनलोड किया जाता है।

+0

जो मुझे दस्तावेज़ीकरण के माध्यम से बहुत तेज़ी से छोड़ने के लिए सिखाएगा;) धन्यवाद (फिर से) पास्कल – Jimmy