2012-02-02 15 views
6

Una dependencia de mi proyecto de grails (un módulo que construyo) genera un archivo zip como parte de su proceso de compilación (para consumo de un aplicación flex) usando maven-assembly-plugin. Esta postal se emite a mi repo mvn local en el mismo directorio que el frasco que se emite desde la construcción del módulo es decirGrails está interpretando un zip en mi repositorio como un complemento, aunque en realidad no es un complemento

.m2/repository/com/mypackage/domain/1.0.0-SNAPSHOT/domain-1.0.0-SNAPSHOT.jar 
.m2/repository/com/mypackage/domain/1.0.0-SNAPSHOT/domain-1.0.0-SNAPSHOT-generated-tos.zip 

A medida que el módulo es un (transitivo) la dependencia en mi proyecto griales, el frasco y el código postal son ambos están en caché en el caché ivy

Ahora cuando trato de iniciar mi aplicación Grails, Grails parece estar detectando este zip desde el caché ivy y tratando de instalarlo como un complemento que falla por razones obvias ...

| Loading Grails 2.0.0 
| Configuring classpath. 
| Environment set to development..... 
| Error Zip ~/.grails/ivy-cache/com.mypackage/domain/zips/domain-1.0.0-SNAPSHOT-generated-tos.zip is not a valid plugin 

Es necesario que se forme la cremallera t al repositorio ya que otro módulo usa mvn-dependency-plugin para descomprimirlo como parte de su proceso de compilación. Como tal, necesito encontrar una forma de decirle a Grails que lo ignore, ya que no es un complemento zip. es posible?

+0

Jay, ¿alguna vez resolver este problema? Me estoy encontrando con el mismo problema en este momento. – jboutros

+0

Lo siento, debería haber respondido esto hace siglos: creo que logré configurar el complemento maven-assembly para empaquetar los archivos de ActionScript generados como un rar en lugar de un archivo zip y esto solucionó el problema con Grails interpretándolo como un complemento. Ha pasado un tiempo desde que lo hice ahora, así que no tengo la solución a mano, lo siento. –

Respuesta

0

Esto se debe a que en grails el paquete de complementos está comprimido por defecto, y cualquier archivo dependiente en ese formato se considerará un complemento.

tratar de hacer excluye transitiva de forma predeterminada:

def excludes = { 
    transitive = false 
} 
0

Sin probar esto supondría que era todo que ver con la configuración de la BuildConfig.groovy.

Las cosas que coloca dentro del bloque de dependencias deben incluirse como están, mientras que las cosas en el bloque de complementos se consideran un complemento zip.

Me topé con el problema una vez que configuré mal un proyecto. El siguiente ejemplo no se ha probado :)

dependencies { 
    compile "my.project:artifact:0.1.0:zip" 
} 
plugins { 
    compile "my.project:artifact:0.1.0" // Automatic found as a zip project 

}

Cuestiones relacionadas