Получение исходной ошибки при сборке проекта Groovy с Maven
Я пытаюсь создать свой первый Groovy-проект с помощью Maven, но я получаю следующую ошибку от Maven... это какой-то тип ошибки источника, но я не понимаю, почему я ее получаю.
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.186s
[INFO] Finished at: Fri Jan 25 15:36:09 EST 2013
[INFO] Final Memory: 15M/163M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.gmaven:gmaven-plugin:1.3:execute (default) on project groovyhello: org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack: No such property: project for class: org.smith.Example -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Process finished with exit code 1
Ниже мой исходный код:
package org.smith
/**
* Example Groovy class.
*/
class Example
{
def show() {
println 'Hello World'
}
}
и вот мой файл pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>org.smith</groupId>
<artifactId>groovyhello</artifactId>
<name>Example Project</name>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy.maven.runtime</groupId>
<artifactId>gmaven-runtime-1.6</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>${pom.basedir}/src/main/groovy/org/smith/Example.groovy</source>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
2 ответа
Ваша первая подсказка - ошибка: No such property: project for class: org.jsmith.Example
Извиняюсь за повторение вашей ошибки в качестве ответа, но позвольте мне объяснить. Это говорит о том, что где-то в вашем источнике у вас есть ссылка на переменную project
, (возможно, в источнике, который вы не опубликовали, или, возможно, в источнике до того, как вы случайно изменили его и до того, как опубликовали его??)
Я полагаю, у вас, возможно, была опечатка в имени пакета или какой-то дополнительный тестовый код после определения класса? Например, что-то вроде этого может вызвать такую ошибку:
package org.smith
/**
* Example Groovy class.
*/
class Example
{
def show() {
println 'Hello World'
}
}
println project.path
Опять же, вы должны опубликовать как обновленный код во время ошибки, так и точную ошибку, соответствующую коду. Трудно определить, исходя из того, что у вас есть выше, где лежат ваши проблемы.
Вам придется определить проект и привязать к mavenProject, если вы используете скрипт, а не встроенный.
def project = ${project}; // this will bind to the Maven Project property.
также
def session = ${session} //will bind to MavenSession
Источник - поиск пользовательских свойств