Mon but est de prendre une application web Grails et de la construire dans un ARchive Web (fichier WAR) en utilisant Maven, et la clé est que il doit remplir le dossier "plugins" sans accès direct à Internet. Un fichier "JAR" de la webapp Grails aura déjà le dossier plugins avec les fichiers JAR, mais le script build de maven devrait prendre soin de le peupler, comme pour tous les projets WAR traditionnels (tels que WEB-INF/lib/si elle est vide)Maven ne résout pas un plug-in Grails local
Ceci est une erreur lors de l'exécution de mvn grails:run-app
avec Grails 1.1 en utilisant Maven 2.0.10 et org.grails: grails-maven-plugin: 1.0. (Ce plugin « mise en veille prolongée-1.1 » est nécessaire pour faire Gorm.)
[INFO] [grails:run-app]
Running pre-compiled script
Environment set to development
Plugin [hibernate-1.1] not installed, resolving..
Reading remote plugin list ...
Error reading remote plugin list [svn.codehaus.org], building locally...
Unable to list plugins, please check you have a valid internet connection: svn.codehaus.org
Reading remote plugin list ...
Error reading remote plugin list [plugins.grails.org], building locally...
Unable to list plugins, please check you have a valid internet connection: plugins.grails.org
Plugin 'hibernate' was not found in repository. If it is not stored in a configured repository you will need to install it manually. Type 'grails list-plugins' to find out what plugins are available.
La machine de construction n'a pas accès à Internet et doit utiliser un référentiel interne/d'entreprise, de sorte que cette erreur est juste que Maven Ne trouvez pas l'artefact requis partout. Cette dépendance est déjà incluse avec le logiciel stock Grails qui est installé localement, donc j'ai juste besoin de comprendre comment obtenir mon fichier POM pour décompresser ce fichier ZIP dans le dossier "plugins" de ma webapp.
J'ai essayé d'installer le plugin manuellement dans mon dépôt local et en en faisant une dépendance explicite dans POM.xml, mais il n'est toujours pas reconnu. Peut-être que vous ne pouvez pas tirer vers le bas des plugins Grails comme vous le feriez d'une référence standard Maven? Je peux configurer manuellement la webapp Grails à partir de la ligne de commande, ce qui crée correctement ce dossier ./plugins local. C'est un pas dans la bonne direction, alors peut-être la question est: comment puis-je intégrer cet objectif dans mon POM? mvn grails:install-plugin -DpluginUrl=%GRAILS_HOME%/plugins/grails-hibernate-1.1.zip
Voici une copie de mon fichier POM.xml, qui a été généré à l'aide d'un archétype.
<?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>com.samples</groupId>
<artifactId>sample-grails</artifactId>
<packaging>war</packaging>
<name>Sample Grails webapp</name>
<properties>
<sourceComplianceLevel>1.5</sourceComplianceLevel>
</properties>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-crud</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-gorm</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>opensymphony</groupId>
<artifactId>oscache</artifactId>
<version>2.4</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-hibernate</artifactId>
<version>1.1</version>
<type>zip</type>
</dependency>
-->
</dependencies>
<build>
<pluginManagement />
<plugins>
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>1.0</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>init</goal>
<goal>maven-clean</goal>
<goal>validate</goal>
<goal>config-directories</goal>
<goal>maven-compile</goal>
<goal>maven-test</goal>
<goal>maven-war</goal>
<goal>maven-functional-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${sourceComplianceLevel}</source>
<target>${sourceComplianceLevel}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
BTW, vous avez probablement besoin de la version 1.1 du plugin Maven. –
Peter, merci pour la réponse détaillée. Il semble que ce soit sur la bonne voie, donc j'ai voté, mais je vois cette erreur lors de l'exécution de "mvn deploy" (POM utilise la version 1.1 du plugin) ovy.lang.MissingPropertyException: No such propriété: HibernatePluginSupport pour la classe: HibernateGrailsPlugin à org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap (ScriptBytecodeAdapter.java:49) ... à org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty (AbstractCallSite.java : 240) à HibernateGrailsPlugin. (HibernateGrailsPlugin.groovy: 43) –
Drew