You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Jason van Zyl <ja...@maven.org> on 2008/07/17 16:55:25 UTC

Shade: making it easy to create executable jars

Hi,

I was looking through JIRA and the source and there doesn't seem to be  
an easy way to create an executable JAR. I don't want to add JAR  
plugin configuration to set the class I want to use for "java -jar  
pooky.jar".

Anyone else thought about this?

I want to add a simple configuration for, and for people who have put  
the MANIFEST.MF information in I don't see a resource transformer so  
that you can control the right manifest landing in the right place so  
it would work.

I just want to specify the class and then the plugin do the work.

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

the course of true love never did run smooth ...

  -- Shakespeare


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Jesse McConnell <je...@gmail.com>.
I was just thinking about wiring in the shade plugin for the
jetty-runner (starts up wars, etc from the cli) this morning and that
would definitely require this ability...trying to remember how I did
it in the past I think I just added it manually and managed the
MANIFEST.MF but that is a nasty file to work with so this would be
cool

jesse

On Thu, Jul 17, 2008 at 9:55 AM, Jason van Zyl <ja...@maven.org> wrote:
> Hi,
>
> I was looking through JIRA and the source and there doesn't seem to be an
> easy way to create an executable JAR. I don't want to add JAR plugin
> configuration to set the class I want to use for "java -jar pooky.jar".
>
> Anyone else thought about this?
>
> I want to add a simple configuration for, and for people who have put the
> MANIFEST.MF information in I don't see a resource transformer so that you
> can control the right manifest landing in the right place so it would work.
>
> I just want to specify the class and then the plugin do the work.
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
> the course of true love never did run smooth ...
>
>  -- Shakespeare
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>



-- 
jesse mcconnell
jesse.mcconnell@gmail.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Jason van Zyl <ja...@maven.org>.
Maybe I'll make the transformers like the enforcers where they are  
components that can be configured.

I could see just specifying the main-class ignoring everything else,  
or allowing merging or selectively looking for an artifact which  
contained the MANIFEST you wanted to win.

On 17-Jul-08, at 11:17 AM, Daniel Kulp wrote:

>
> In general, we let the stuff that executes prior to the Shade plugin  
> handle the manifest.    That might be the jar plugin, but it could  
> be something else like the felix bundle plugin.
>
> I guess that would be the important thing: make sure the above  
> scenario still works correctly.
>
> On Jul 17, 2008, at 10:55 AM, Jason van Zyl wrote:
>> I was looking through JIRA and the source and there doesn't seem to  
>> be an easy way to create an executable JAR. I don't want to add JAR  
>> plugin configuration to set the class I want to use for "java -jar  
>> pooky.jar".
>
> Why not?    That's certainly the documented way to do it right now.
>
> Dan
>
>
>
>>
>>
>> Anyone else thought about this?
>>
>> I want to add a simple configuration for, and for people who have  
>> put the MANIFEST.MF information in I don't see a resource  
>> transformer so that you can control the right manifest landing in  
>> the right place so it would work.
>>
>> I just want to specify the class and then the plugin do the work.
>>
>> Thanks,
>>
>> Jason
>>
>> ----------------------------------------------------------
>> Jason van Zyl
>> Founder,  Apache Maven
>> jason at sonatype dot com
>> ----------------------------------------------------------
>>
>> the course of true love never did run smooth ...
>>
>> -- Shakespeare
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> ---
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

Three people can keep a secret provided two of them are dead.

  -- Unknown


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Daniel Kulp <dk...@apache.org>.
On Jul 17, 2008, at 11:33 AM, Jason van Zyl wrote:

>
> On 17-Jul-08, at 11:27 AM, Daniel Kulp wrote:
>
>>
>> On Jul 17, 2008, at 11:23 AM, Jason van Zyl wrote:
>>
>>> I'll make sure, but that would work by default as if you knew the  
>>> manifest in one of your JARs had the main-class entry you wouldn't  
>>> be specifying it in the shade plugin.
>>
>> Right, but if manifest entries can come from two places, we need to  
>> make sure they are merged.   Take the "main-class" from the shade  
>> config, but everything else from the existing MANIFEST, etc....
>
> They are not merged now are they? It's just random now it looks like.

No, it's "first one wins", not random.    In general, that would be  
the current project artifact.  (aka: what was configured in the "jar"  
plugin)

Dan




>
>
>>
>>
>> Dan
>>
>>
>>
>>>
>>>
>>> On 17-Jul-08, at 11:17 AM, Daniel Kulp wrote:
>>>
>>>>
>>>> In general, we let the stuff that executes prior to the Shade  
>>>> plugin handle the manifest.    That might be the jar plugin, but  
>>>> it could be something else like the felix bundle plugin.
>>>>
>>>> I guess that would be the important thing: make sure the above  
>>>> scenario still works correctly.
>>>>
>>>> On Jul 17, 2008, at 10:55 AM, Jason van Zyl wrote:
>>>>> I was looking through JIRA and the source and there doesn't seem  
>>>>> to be an easy way to create an executable JAR. I don't want to  
>>>>> add JAR plugin configuration to set the class I want to use for  
>>>>> "java -jar pooky.jar".
>>>>
>>>> Why not?    That's certainly the documented way to do it right now.
>>>>
>>>> Dan
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>> Anyone else thought about this?
>>>>>
>>>>> I want to add a simple configuration for, and for people who  
>>>>> have put the MANIFEST.MF information in I don't see a resource  
>>>>> transformer so that you can control the right manifest landing  
>>>>> in the right place so it would work.
>>>>>
>>>>> I just want to specify the class and then the plugin do the work.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Jason
>>>>>
>>>>> ----------------------------------------------------------
>>>>> Jason van Zyl
>>>>> Founder,  Apache Maven
>>>>> jason at sonatype dot com
>>>>> ----------------------------------------------------------
>>>>>
>>>>> the course of true love never did run smooth ...
>>>>>
>>>>> -- Shakespeare
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>>
>>>>
>>>> ---
>>>> Daniel Kulp
>>>> dkulp@apache.org
>>>> http://www.dankulp.com/blog
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>
>>>
>>> Thanks,
>>>
>>> Jason
>>>
>>> ----------------------------------------------------------
>>> Jason van Zyl
>>> Founder,  Apache Maven
>>> jason at sonatype dot com
>>> ----------------------------------------------------------
>>>
>>> A party which is not afraid of letting culture,
>>> business, and welfare go to ruin completely can
>>> be omnipotent for a while.
>>>
>>> -- Jakob Burckhardt
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>
>> ---
>> Daniel Kulp
>> dkulp@apache.org
>> http://www.dankulp.com/blog
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
> A man enjoys his work when he understands the whole and when he
> is responsible for the quality of the whole
>
> -- Christopher Alexander, A Pattern Language
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Jason van Zyl <ja...@maven.org>.
On 17-Jul-08, at 11:27 AM, Daniel Kulp wrote:

>
> On Jul 17, 2008, at 11:23 AM, Jason van Zyl wrote:
>
>> I'll make sure, but that would work by default as if you knew the  
>> manifest in one of your JARs had the main-class entry you wouldn't  
>> be specifying it in the shade plugin.
>
> Right, but if manifest entries can come from two places, we need to  
> make sure they are merged.   Take the "main-class" from the shade  
> config, but everything else from the existing MANIFEST, etc....

They are not merged now are they? It's just random now it looks like.

>
>
> Dan
>
>
>
>>
>>
>> On 17-Jul-08, at 11:17 AM, Daniel Kulp wrote:
>>
>>>
>>> In general, we let the stuff that executes prior to the Shade  
>>> plugin handle the manifest.    That might be the jar plugin, but  
>>> it could be something else like the felix bundle plugin.
>>>
>>> I guess that would be the important thing: make sure the above  
>>> scenario still works correctly.
>>>
>>> On Jul 17, 2008, at 10:55 AM, Jason van Zyl wrote:
>>>> I was looking through JIRA and the source and there doesn't seem  
>>>> to be an easy way to create an executable JAR. I don't want to  
>>>> add JAR plugin configuration to set the class I want to use for  
>>>> "java -jar pooky.jar".
>>>
>>> Why not?    That's certainly the documented way to do it right now.
>>>
>>> Dan
>>>
>>>
>>>
>>>>
>>>>
>>>> Anyone else thought about this?
>>>>
>>>> I want to add a simple configuration for, and for people who have  
>>>> put the MANIFEST.MF information in I don't see a resource  
>>>> transformer so that you can control the right manifest landing in  
>>>> the right place so it would work.
>>>>
>>>> I just want to specify the class and then the plugin do the work.
>>>>
>>>> Thanks,
>>>>
>>>> Jason
>>>>
>>>> ----------------------------------------------------------
>>>> Jason van Zyl
>>>> Founder,  Apache Maven
>>>> jason at sonatype dot com
>>>> ----------------------------------------------------------
>>>>
>>>> the course of true love never did run smooth ...
>>>>
>>>> -- Shakespeare
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>
>>>
>>> ---
>>> Daniel Kulp
>>> dkulp@apache.org
>>> http://www.dankulp.com/blog
>>>
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>
>> Thanks,
>>
>> Jason
>>
>> ----------------------------------------------------------
>> Jason van Zyl
>> Founder,  Apache Maven
>> jason at sonatype dot com
>> ----------------------------------------------------------
>>
>> A party which is not afraid of letting culture,
>> business, and welfare go to ruin completely can
>> be omnipotent for a while.
>>
>> -- Jakob Burckhardt
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> ---
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

A man enjoys his work when he understands the whole and when he
is responsible for the quality of the whole

  -- Christopher Alexander, A Pattern Language


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Daniel Kulp <dk...@apache.org>.
On Jul 17, 2008, at 11:23 AM, Jason van Zyl wrote:

> I'll make sure, but that would work by default as if you knew the  
> manifest in one of your JARs had the main-class entry you wouldn't  
> be specifying it in the shade plugin.

Right, but if manifest entries can come from two places, we need to  
make sure they are merged.   Take the "main-class" from the shade  
config, but everything else from the existing MANIFEST, etc....

Dan



>
>
> On 17-Jul-08, at 11:17 AM, Daniel Kulp wrote:
>
>>
>> In general, we let the stuff that executes prior to the Shade  
>> plugin handle the manifest.    That might be the jar plugin, but it  
>> could be something else like the felix bundle plugin.
>>
>> I guess that would be the important thing: make sure the above  
>> scenario still works correctly.
>>
>> On Jul 17, 2008, at 10:55 AM, Jason van Zyl wrote:
>>> I was looking through JIRA and the source and there doesn't seem  
>>> to be an easy way to create an executable JAR. I don't want to add  
>>> JAR plugin configuration to set the class I want to use for "java - 
>>> jar pooky.jar".
>>
>> Why not?    That's certainly the documented way to do it right now.
>>
>> Dan
>>
>>
>>
>>>
>>>
>>> Anyone else thought about this?
>>>
>>> I want to add a simple configuration for, and for people who have  
>>> put the MANIFEST.MF information in I don't see a resource  
>>> transformer so that you can control the right manifest landing in  
>>> the right place so it would work.
>>>
>>> I just want to specify the class and then the plugin do the work.
>>>
>>> Thanks,
>>>
>>> Jason
>>>
>>> ----------------------------------------------------------
>>> Jason van Zyl
>>> Founder,  Apache Maven
>>> jason at sonatype dot com
>>> ----------------------------------------------------------
>>>
>>> the course of true love never did run smooth ...
>>>
>>> -- Shakespeare
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>
>> ---
>> Daniel Kulp
>> dkulp@apache.org
>> http://www.dankulp.com/blog
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
> A party which is not afraid of letting culture,
> business, and welfare go to ruin completely can
> be omnipotent for a while.
>
>  -- Jakob Burckhardt
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Jason van Zyl <ja...@maven.org>.
I'll make sure, but that would work by default as if you knew the  
manifest in one of your JARs had the main-class entry you wouldn't be  
specifying it in the shade plugin.

On 17-Jul-08, at 11:17 AM, Daniel Kulp wrote:

>
> In general, we let the stuff that executes prior to the Shade plugin  
> handle the manifest.    That might be the jar plugin, but it could  
> be something else like the felix bundle plugin.
>
> I guess that would be the important thing: make sure the above  
> scenario still works correctly.
>
> On Jul 17, 2008, at 10:55 AM, Jason van Zyl wrote:
>> I was looking through JIRA and the source and there doesn't seem to  
>> be an easy way to create an executable JAR. I don't want to add JAR  
>> plugin configuration to set the class I want to use for "java -jar  
>> pooky.jar".
>
> Why not?    That's certainly the documented way to do it right now.
>
> Dan
>
>
>
>>
>>
>> Anyone else thought about this?
>>
>> I want to add a simple configuration for, and for people who have  
>> put the MANIFEST.MF information in I don't see a resource  
>> transformer so that you can control the right manifest landing in  
>> the right place so it would work.
>>
>> I just want to specify the class and then the plugin do the work.
>>
>> Thanks,
>>
>> Jason
>>
>> ----------------------------------------------------------
>> Jason van Zyl
>> Founder,  Apache Maven
>> jason at sonatype dot com
>> ----------------------------------------------------------
>>
>> the course of true love never did run smooth ...
>>
>> -- Shakespeare
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> ---
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

A party which is not afraid of letting culture,
business, and welfare go to ruin completely can
be omnipotent for a while.

   -- Jakob Burckhardt


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Shade: making it easy to create executable jars

Posted by Daniel Kulp <dk...@apache.org>.
In general, we let the stuff that executes prior to the Shade plugin  
handle the manifest.    That might be the jar plugin, but it could be  
something else like the felix bundle plugin.

I guess that would be the important thing: make sure the above  
scenario still works correctly.

On Jul 17, 2008, at 10:55 AM, Jason van Zyl wrote:
> I was looking through JIRA and the source and there doesn't seem to  
> be an easy way to create an executable JAR. I don't want to add JAR  
> plugin configuration to set the class I want to use for "java -jar  
> pooky.jar".

Why not?    That's certainly the documented way to do it right now.

Dan



>
>
> Anyone else thought about this?
>
> I want to add a simple configuration for, and for people who have  
> put the MANIFEST.MF information in I don't see a resource  
> transformer so that you can control the right manifest landing in  
> the right place so it would work.
>
> I just want to specify the class and then the plugin do the work.
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
> the course of true love never did run smooth ...
>
> -- Shakespeare
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org