create a distribution

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

create a distribution

Marko Bauhardt-3
Hi,
i try to create a distrubution (zip file) for our project. this zip  
should contain 3 directories:

bin - shell scripts
conf - configuration files
lib - all jar files

i try to realize this with this task:

---
dists {
   String zipRoot = "$archivesBaseName-$version"

   zip() {
     zipFileSet(dir: file('src/main/scripts'), prefix: "$zipRoot/bin",  
fileMode: '775')
     zipFileSet(dir: file('src/main/resources'), prefix: "$zipRoot/
conf")
     zipFileSet(dir: runtimeLibsDir, prefix: "$zipRoot/lib")
   }

}
---

Everything look ok, but the jar of my project is not included in the  
lib folder of this zip archive. so i add this line to the zip task

---
     zipFileSet(dir: buildDir, includes:  
file("$myProject_jar.archivePath"),  prefix: "$zipRoot/lib")
---

after that i get this exception:


Build aborted anormally because of an internal error. Run with -d  
option to get additonal debug info. Please file an issue at: www.gradle.org
Exception is:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot  
cast object 'PATH_TO_MY_JAR' with class 'java.io.File' to class  
'java.util.LinkedHashSet'
         at  
org
.codehaus
.groovy
.runtime
.typehandling
.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:
340)
         at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:
1994)
         at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:
2587)
         at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
         at  
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at  
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:226)
         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:
910)
         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:
754)
         at  
org
.codehaus
.groovy.runtime.InvokerHelper.invokePojoMethod(InvokerHelper.java:765)
         at  
org
.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:
753)
         at  
org
.codehaus
.groovy
.runtime
.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:167)
         at  
org.gradle.api.tasks.util.FileSet.setProperty(FileSet.groovy)
         at  
org
.codehaus
.groovy
.runtime
.ScriptBytecodeAdapter
.setGroovyObjectProperty(ScriptBytecodeAdapter.java:559)
         at org.gradle.api.tasks.util.PatternSet
$_closure1.doCall(PatternSet.groovy:37)


Any idea how i can include my project jar file in the lib directory of  
the zip file?

thanks for any hint
marko




---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: create a distribution

hans_d
Administrator
Hi Marko,

On Jul 3, 2008, at 11:01 AM, Marko Bauhardt wrote:

> Hi,
> i try to create a distrubution (zip file) for our project. this zip  
> should contain 3 directories:
>
> bin - shell scripts
> conf - configuration files
> lib - all jar files
>
> i try to realize this with this task:
>
> ---
> dists {
>   String zipRoot = "$archivesBaseName-$version"
>
>   zip() {
>     zipFileSet(dir: file('src/main/scripts'), prefix: "$zipRoot/
> bin", fileMode: '775')
>     zipFileSet(dir: file('src/main/resources'), prefix: "$zipRoot/
> conf")
>     zipFileSet(dir: runtimeLibsDir, prefix: "$zipRoot/lib")
>   }
>
> }
> ---
>
> Everything look ok, but the jar of my project is not included in  
> the lib folder of this zip archive. so i add this line to the zip task
>
> ---
>     zipFileSet(dir: buildDir, includes: file
> ("$myProject_jar.archivePath"),  prefix: "$zipRoot/lib")

First: myProject_jar.archivePath is already a file object (no need to  
transform it to a String and back to a file).

The ZipFileSet has an includes property which is of type Set. To make  
the above work you have to say:

zipFileSet(includes: ['somepath'], ...)

or (via the include method of the ZipFileSet)

zipFileSet(....).include('somepath')

and similarly

zipFileSet(...) {
     include('somepath')
}

- Hans

> ---
>
> after that i get this exception:
>
>
> Build aborted anormally because of an internal error. Run with -d  
> option to get additonal debug info. Please file an issue at:  
> www.gradle.org
> Exception is:
> org.codehaus.groovy.runtime.typehandling.GroovyCastException:  
> Cannot cast object 'PATH_TO_MY_JAR' with class 'java.io.File' to  
> class 'java.util.LinkedHashSet'
>         at  
> org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.cas
> tToType(DefaultTypeTransformation.java:340)
>         at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:
> 1994)
>         at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:
> 2587)
>         at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown  
> Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.codehaus.groovy.reflection.CachedMethod.invoke
> (CachedMethod.java:86)
>         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:226)
>         at groovy.lang.MetaClassImpl.invokeMethod
> (MetaClassImpl.java:910)
>         at groovy.lang.MetaClassImpl.invokeMethod
> (MetaClassImpl.java:754)
>         at  
> org.codehaus.groovy.runtime.InvokerHelper.invokePojoMethod
> (InvokerHelper.java:765)
>         at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod
> (InvokerHelper.java:753)
>         at  
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN
> (ScriptBytecodeAdapter.java:167)
>         at org.gradle.api.tasks.util.FileSet.setProperty
> (FileSet.groovy)
>         at  
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setGroovyObjectPrope
> rty(ScriptBytecodeAdapter.java:559)
>         at org.gradle.api.tasks.util.PatternSet$_closure1.doCall
> (PatternSet.groovy:37)
>
>
> Any idea how i can include my project jar file in the lib directory  
> of the zip file?
>
> thanks for any hint
> marko
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: create a distribution

Marko Bauhardt-3

On Jul 3, 2008, at 11:24 AM, Hans Dockter wrote:

> Hi Marko,
>
> On Jul 3, 2008, at 11:01 AM, Marko Bauhardt wrote:
>
>> Hi,
>> i try to create a distrubution (zip file) for our project. this zip  
>> should contain 3 directories:
>>
>> Everything look ok, but the jar of my project is not included in  
>> the lib folder of this zip archive. so i add this line to the zip  
>> task
>>
>> ---
>>    zipFileSet(dir: buildDir, includes:  
>> file("$myProject_jar.archivePath"),  prefix: "$zipRoot/lib")
>
> First: myProject_jar.archivePath is already a file object (no need  
> to transform it to a String and back to a file).
>
> The ZipFileSet has an includes property which is of type Set. To  
> make the above work you have to say:
>
> zipFileSet(includes: ['somepath'], ...)
>
> or (via the include method of the ZipFileSet)
>
> zipFileSet(....).include('somepath')
>
> and similarly
>
> zipFileSet(...) {
>    include('somepath')
> }



Cool thanks. this works for me:

     zipFileSet(dir: buildDir, prefix: "$zipRoot/lib") {
       include('*.jar')
     }

Thanks for help . sorry for the mail traffic and those basic  
questions. but i'm a newbie of gradle/ivy/groovy and ant and i have to  
read more documentation and get more practice.


regards
marko


btw
this does not work
zipFileSet(dir: buildDir, includes: ['*.jar'], prefix: "$zipRoot/lib")

org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot  
cast object '[*.jar]' with class 'java.util.ArrayList' to class  
'java.util.LinkedHashSet'







---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: create a distribution

hans_d
Administrator

On Jul 3, 2008, at 11:52 AM, Marko Bauhardt wrote:

>
> On Jul 3, 2008, at 11:24 AM, Hans Dockter wrote:
>
>> Hi Marko,
>>
>> On Jul 3, 2008, at 11:01 AM, Marko Bauhardt wrote:
>>
>>> Hi,
>>> i try to create a distrubution (zip file) for our project. this  
>>> zip should contain 3 directories:
>>>
>>> Everything look ok, but the jar of my project is not included in  
>>> the lib folder of this zip archive. so i add this line to the zip  
>>> task
>>>
>>> ---
>>>    zipFileSet(dir: buildDir, includes: file
>>> ("$myProject_jar.archivePath"),  prefix: "$zipRoot/lib")
>>
>> First: myProject_jar.archivePath is already a file object (no need  
>> to transform it to a String and back to a file).
>>
>> The ZipFileSet has an includes property which is of type Set. To  
>> make the above work you have to say:
>>
>> zipFileSet(includes: ['somepath'], ...)
>>
>> or (via the include method of the ZipFileSet)
>>
>> zipFileSet(....).include('somepath')
>>
>> and similarly
>>
>> zipFileSet(...) {
>>    include('somepath')
>> }
>
>
>
> Cool thanks. this works for me:
>
>     zipFileSet(dir: buildDir, prefix: "$zipRoot/lib") {
>       include('*.jar')
>     }
>
> Thanks for help . sorry for the mail traffic and those basic  
> questions. but i'm a newbie of gradle/ivy/groovy and ant and i have  
> to read more documentation and get more practice.

Thanks for your questions. I've learned from Xavier's answers how to  
access protected http repositories :)

- Hans

>
>
> regards
> marko
>
>
> btw
> this does not work
> zipFileSet(dir: buildDir, includes: ['*.jar'], prefix: "$zipRoot/lib")
>
> org.codehaus.groovy.runtime.typehandling.GroovyCastException:  
> Cannot cast object '[*.jar]' with class 'java.util.ArrayList' to  
> class 'java.util.LinkedHashSet'
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email