Я пытаюсь создать свое приложение для 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 нигде, поэтому если библиотеки механизма приложения не требуют его, я не уверен, почему я получаю это сообщение.
Подключаемому модулю 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 будет загружен.