问题
I just started using Maven in my projects.
I converted an old project to a Maven project and at first everything worked fine. But now I have a problem.
When I try to run the application (is a GWT application that uses Objectify) I get the following error:
SDK location '/Users/abelbarbosa/.m2/repository/com/google/appengine/appengine-api-1.0-sdk/1.7.6/appengine-api-1.0-sdk-1.7.6.jar' is not a directory
I know that it isn't a directory but i don't think it was supposed to be. I don't know how to correct this.
Is there anything wrong with my pom.xml:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>WebConFuturo</groupId>
<artifactId>WebConFuturo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<organization>
<name>OhApp!</name>
<url>www.ohapp.pt</url>
</organization>
<dependencies>
<dependency>
<groupId>com.googlecode.objectify</groupId>
<artifactId>objectify</artifactId>
<version>4.0b3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.web.bindery</groupId>
<artifactId>requestfactory</artifactId>
<version>2.5.1-rc1</version>
<type>pom</type>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
</pluginRepository>
</pluginRepositories>
<build>
<sourceDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/src</sourceDirectory>
<scriptSourceDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/src/test/java</testSourceDirectory>
<outputDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target/classes</outputDirectory>
<testOutputDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target/test-classes</testOutputDirectory>
<resources>
<resource>
<directory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/src/test/resources</directory>
</testResource>
</testResources>
<directory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target</directory>
<finalName>WebConFuturo-0.0.1-SNAPSHOT</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</execution>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</execution>
</executions>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>default-war</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<archiveClasses>true</archiveClasses>
</configuration>
</execution>
</executions>
<configuration>
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.7.6</version>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>default-clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>default-install</id>
<phase>install</phase>
<goals>
<goal>install</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>default-resources</id>
<phase>process-resources</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
<execution>
<id>default-testResources</id>
<phase>process-test-resources</phase>
<goals>
<goal>testResources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
<executions>
<execution>
<id>default-site</id>
<phase>site</phase>
<goals>
<goal>site</goal>
</goals>
<configuration>
<outputDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target/site</outputDirectory>
<reportPlugins>
<reportPlugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</reportPlugin>
</reportPlugins>
</configuration>
</execution>
<execution>
<id>default-deploy</id>
<phase>site-deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
<configuration>
<outputDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target/site</outputDirectory>
<reportPlugins>
<reportPlugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</reportPlugin>
</reportPlugins>
</configuration>
</execution>
</executions>
<configuration>
<outputDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target/site</outputDirectory>
<reportPlugins>
<reportPlugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</reportPlugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<outputDirectory>/Users/abelbarbosa/Documents/workspace/WebConFuturo/target/site</outputDirectory>
</reporting>
</project>
Thank you for your help.
Best regards
回答1:
You have to use the maven appengine plugin. https://code.google.com/p/maven-gae-plugin/
回答2:
In your project build path make sure the AppEngine lib is before your maven lib. See here how to set it: https://stackoverflow.com/a/15314586/1040124
回答3:
the text got garbled in the comment. so rewriting here, add a dependency for appengine:
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>1.8.1</version>
</dependency>
not sure it will solve the problem but tell us the result.
来源:https://stackoverflow.com/questions/17721818/appengine-api-1-0-sdk-1-7-6-jar-is-not-a-directory