help with ant and copy plugins for Java application
Jenny Murphy
jenny.murphy at episensor.com
Wed Jun 15 10:45:13 UTC 2016
Hi,
To follow up on this issue I solved it by extending the wrapper script. I
add the required external jars to the existing class-path in wrapper.
So wrapper looks like :
#!/bin/sh
export CLASSPATH=$SNAP_APP_PATH/jar/HelloWorld-helper.jar:$CLASSPATH
java oata.HelloWorld
This works fine.
I have two examples now derived from the original java-hello-world example.
Example 1 builds two jars and lets snapcraft do the work by adding the two
jars that it builds to the class-path.
Example 2 builds one jar and then takes care to add the required external
jar to the class-path in the wrapper script.
I can provide both if you think they might be of interest to other
developers.
Regards,
Jenny
On 14 June 2016 at 13:33, Sergio Schvezov <sergio.schvezov at canonical.com>
wrote:
> El martes, 14 de junio de 2016 08h'15:48 ART, Jenny Murphy <
> jenny.murphy at episensor.com> escribió:
>
>> Hi,
>> I am trying to build up some competency with snapcraft for java
>> applications.
>>
>> Currently I have a hello world project which is based on
>>
>> https://github.com/ubuntu-core/snapcraft/blob/1.x/examples/java-hello-world/snapcraft.yaml
>> .
>>
>> I have extended in that HelloWorld.java references a method from another
>> package in an external jar file (HellowWorld-helper.jar)
>>
>> I edited the snapcraft.yaml to use the copy plugin to copy the jar file to
>> the jar directory.
>> It can be seen there after the snap stage.
>>
>> However in bin.wrapper.wrapper , the external jar file is not added to the
>> classpath. So the application fails on running.
>>
>> How do I fix this?
>>
>
> First of all, thank you for giving this a try. I'll start with a couple of
> details and follow on with a solution.
>
> First of all, `bin.wrapper.bin` is an implementation detail, likely to go
> away when we implement allowing `apps` (and `plugins`) to define
> environment variables (https://pad.lv/1583259) which would do the right
> thing on a snappy system. How would this look like in the not so distant
> future:
>
> ...
> apps:
> bin:
> command: ....
> environment:
> CLASSPATH: $CLASSPATH:$SNAP/path_to_jar/jar.jar
>
> parts:
> ...
>
> Now on to your problem. The java related plugins have logic to export
> environment variables, but each part (driven by a plugin), is a private
> world of its own. Since you used the copy plugin, the logic in the copy
> plugin is just to copy. How do we solve in the immediate future? Well you
> would need to create something similar to that wrapper and export the
> required CLASSPATH.
>
> I'll cut off here to not go into to much details, but I am happy to follow
> up on this.
>
> Cheers
> Sergio
>
>
> --
> Enviado con Dekko desde mi dispositivo Ubuntu
>
> --
> Snapcraft mailing list
> Snapcraft at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/snapcraft
>
--
*Jenny Murphy*
*EpiSensor, Georges Quay House, Georges Quay, Limerick, Ireland*
jenny.murphy at episensor.com <jenny.murphy at episensor.com> t | +353 (0) 61
512 511 w | http://www.episensor.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/snapcraft/attachments/20160615/cae3f297/attachment.html>
More information about the Snapcraft
mailing list