Does your problem go away if you explicitly depend on "jar"?  Also,
watch the execution of the tasks - is a "clean" being executed between
"jar" and "onejarJar"?

~~ Robert.

On 27 August 2010 10:46, Lars Heuer <[email protected]> wrote:
> Hi all,
>
> During my build I create an additional jar which contains all
> dependencies (they are added via jarjar).
>
> That works so far, but I cannot use the osgiManifest in my task:
>
>  task onejarJar(type: Jar, dependsOn: repack ) {
>    baseName = jar.baseName + '-onejar'
>    from "$buildDir/onejar"
>    manifest = osgiManifest {
>      from(jar.manifest)
>      instruction 'Bundle-Activator', 'mypack.Activator'
>      instruction 'Import-Package', '!mypack.*, *'
>    }
>  }
>
> Leads to:
>
> Could not copy MANIFEST.MF to 'build\tmp\onejarJar\MANIFEST.MF'.
>
> (Stacktrace below)
>
> If I use
>
>    manifest = project.manifest {
>      from(jar.manifest)
>    }
>
> everything is fine.
>
> Thanks in advance and best regards,
> Lars
>
> Stacktrace:
>
> * Exception is:
> org.gradle.api.GradleException: Could not copy MANIFEST.MF to
> 'build\tmp\onejarJar\MANIFEST.MF'.
>        at 
> org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeEle
> ment.java:70)
>        at 
> org.gradle.api.internal.file.MapFileTree$FileVisitDetailsImpl.getFile(MapFileTr
> ee.java:125)
>        at 
> org.gradle.api.internal.file.AbstractFileTree$1.visitFile(AbstractFileTree.java
> :38)
>        at 
> org.gradle.api.internal.file.AbstractFileTree$FilteredFileTree$1.visitFile(Abst
> ractFileTree.java:135)
>        at 
> org.gradle.api.internal.file.MapFileTree$Visit.visit(MapFileTree.java:95)
>        at org.gradle.api.internal.file.MapFileTree.visit(MapFileTree.java:60)
>        at 
> org.gradle.api.internal.file.AbstractFileTree$FilteredFileTree.visit(AbstractFi
> leTree.java:126)
>        at 
> org.gradle.api.internal.file.AbstractFileTree.getFiles(AbstractFileTree.java:36
> )
>        at 
> org.gradle.api.internal.file.CompositeFileCollection.getFiles(CompositeFileColl
> ection.java:37)
>        at 
> org.gradle.api.internal.file.CompositeFileCollection.getFiles(CompositeFileColl
> ection.java:37)
>        at 
> org.gradle.api.internal.file.CompositeFileCollection.getFiles(CompositeFileColl
> ection.java:37)
>        at 
> org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollec
> tion.java:60)
>        at 
> org.gradle.api.internal.changedetection.DefaultFileSnapshotter.snapshot(Default
> FileSnapshotter.java:42)
>        at 
> org.gradle.api.internal.changedetection.DefaultTaskArtifactStateRepository$Hist
> oricExecution.calcCurrentState(DefaultTaskArtifactStateRepository.java:140)
>        at 
> org.gradle.api.internal.changedetection.DefaultTaskArtifactStateRepository$Hist
> oricExecution.isUpToDate(DefaultTaskArtifactStateRepository.java:150)
>        at 
> org.gradle.api.internal.changedetection.DefaultTaskArtifactStateRepository$Task
> ArtifactStateImpl.isUpToDate(DefaultTaskArtifactStateRepository.java:289)
>        at 
> org.gradle.api.internal.changedetection.ShortCircuitTaskArtifactStateRepository
> $1.isUpToDate(ShortCircuitTaskArtifactStateRepository.java:35)
>        at 
> org.gradle.api.internal.project.taskfactory.ExecutionShortCircuitTaskExecuter.e
> xecute(ExecutionShortCircuitTaskExecuter.java:40)
>        at 
> org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExecuter.java:
> 57)
>        at 
> org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecuter.java:35
> )
>        at 
> org.gradle.api.internal.tasks.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMo
> stOnceTaskExecuter.java:32)
>        at org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:231)
>        at 
> org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecu
> ter.java:167)
>        at 
> org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecute
> r.java:160)
>        at 
> org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.
> java:78)
>        at 
> org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameResolvingBu
> ildExecuter.java:161)
>        at 
> org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.ja
> va:54)
>        at 
> org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.ja
> va:54)
>        at 
> org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLaun
> cher.java:153)
>        at 
> org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.j
> ava:107)
>        at 
> org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:
> 75)
>        at org.gradle.launcher.Main.execute(Main.java:93)
>        at org.gradle.launcher.Main.main(Main.java:42)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja
> va:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at org.gradle.launcher.GradleMain.main(GradleMain.java:49)
> Caused by: java.lang.NullPointerException: null
>        at aQute.lib.osgi.Jar.getName(Jar.java:65)
>        at aQute.lib.osgi.Jar.<init>(Jar.java:55)
>        at aQute.lib.osgi.Analyzer.setJar(Analyzer.java:699)
>        at 
> org.gradle.api.internal.plugins.osgi.DefaultOsgiManifest.setAnalyzerProperties(
> DefaultOsgiManifest.java:84)
>        at 
> org.gradle.api.internal.plugins.osgi.DefaultOsgiManifest.getEffectiveManifest(D
> efaultOsgiManifest.java:62)
>        at 
> org.gradle.api.java.archives.internal.DefaultManifest.writeTo(DefaultManifest.j
> ava:152)
>        at 
> org.gradle.api.java.archives.internal.DefaultManifest.writeTo(DefaultManifest.j
> ava:36)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja
> va:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at 
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoU
> nwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
>        at 
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite
> .java:52)
>        at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.jav
> a:125)
>        at 
> org.gradle.api.tasks.bundling.Jar$_closure1_closure2.doCall(Jar.groovy:44)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja
> va:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
>        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>        at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMeta
> Class.java:273)
>        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
>        at groovy.lang.Closure.call(Closure.java:276)
>        at groovy.lang.Closure.call(Closure.java:289)
>        at 
> org.gradle.api.internal.file.MapFileTree$FileVisitDetailsImpl.copyTo(MapFileTre
> e.java:143)
>        at 
> org.gradle.api.internal.file.AbstractFileTreeElement.copyFile(AbstractFileTreeE
> lement.java:77)
>        at 
> org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeEle
> ment.java:65)
>        ... 37 common frames omitted
>
> --
> Semagia
> <http://www.semagia.com>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>

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

    http://xircles.codehaus.org/manage_email


Reply via email to