Знаток, создающий для GoogleAppEngine, вынужденного включать библиотеки JDO?

Я пытаюсь создать свое приложение для GoogleAppEngine с помощью знатока. Я добавил следующее к своему англичанину, который должен "улучшить" мои классы после здания, как предложено на документации DataNucleus


                org.datanucleus
                maven-datanucleus-plugin
                1.1.4
                
                    ${basedir}/log4j.properties
                    true
                
                
                    
                        process-classes
                        
                            enhance
                        
                    
                
            

Согласно документации относительно GoogleAppEngine, у Вас есть выбор использовать JDO или JPA, я принял решение использовать JPA, так как я использовал его в прошлом. Когда я пытаюсь разработать свой проект (прежде чем я загружу на 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] ------------------------------------------------------------------------

Какие-либо идеи, почему я должен получить такую ошибку? Я перерыл свой весь исходный код, и я не ссылаюсь на JDO нигде, поэтому если библиотеки механизма приложения не требуют его, я не уверен, почему я получаю это сообщение.

5
задан Jimmy 3 April 2010 в 15:11
поделиться

1 ответ

Подключаемому модулю DataNucleus Maven требуется JDO2 API JAR (даже для JPA), как описано здесь и как указано в трассировке:

  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.jar - это в репозитории DataNucleus Maven ( - это , объявленное в POM плагина), а Maven проверил этот репозиторий как мы видим на трассировке.

Обновление: Хорошо, это определенно странно, и я не знаю, почему сборка точно не выполняется (возможно, проблема с диапазонами зависимостей). В качестве обходного пути объявите JDO2 API JAR как зависимость в подключаемом модуле:

<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>

После объявления этой зависимости JAR будет загружен.

11
ответ дан 13 December 2019 в 19:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: