maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Cohen <sco...@javactivity.org>
Subject Re: Best way to use closed-source jars with maven repository
Date Fri, 25 Jul 2014 17:44:42 GMT
Ok, thanks, Curtis.  I will have to address it on the packaging side, I 
suppose.  It will force me to get tricky and not just use a dependency 
set (which was lovely and simple).

IBM's requirement is ironclad.  They won't even talk to me in spite of 
having a support contract if we repackage the jars.


On 07/25/2014 12:22 PM, Curtis Rueden wrote:
> Hi Steve,
>
>> The easiest way to accomplish this would be if k could get these jars
>> into the nexus repository named as IBM named them.
>
> Overriding the default naming scheme of JARs in a Maven repository has been
> requested on this list many times, and the answer is always that the naming
> scheme cannot be overridden. It is a requirement of the Maven repository
> that the name be "artifactId-version.extension" (or
> "artifactId-version-classifier.extension" if there is a classifier).
> Remember that the main purpose of Maven repositories is to provide
> dependencies for consumption by downstream code in a standard form -- not
> to cater to application-specific deployment needs.
>
> But you can address the issue on the packaging side, when you build your
> application archive. As suggested by others, the maven-assembly-plugin can
> do this sort of thing. And you can also override the JAR manifests'
> Class-Path entries according to your needs by configuring the
> maven-jar-plugin: see e.g. http://stackoverflow.com/a/5893391.
>
> Alternately, if you can somehow override or work around how the IBM trace
> feature works, that would avoid the issue too. Is it just that the JARs
> have to be on the classpath at runtime? Because there are many ways of
> addressing that. Subclassing one or more offending classes to fix their
> behavior? Or use a custom ClassLoader? Or, worst-case scenario, bytecode
> manipulation (e.g., http://www.javassist.org/) to "fix" IBM's limited logic?
>
> Regards,
> Curtis
>
>
> On Fri, Jul 25, 2014 at 12:07 PM, Steve Cohen <scohen@javactivity.org>
> wrote:
>
>> To elaborate further on what I'd like to do, I think I need to create a
>> POM file that simply lists all these jars and supply that to the Nexus
>> archive uploader.  But I have no idea what must be included in such a POM.
>>   The GUI archive uploader does not allow me to override default naming of
>> these files.
>>
>>
>> On 07/25/2014 11:50 AM, Steve Cohen wrote:
>>
>>> Container?  Guess I need to supply more details.
>>> This is a standalone J2SE app.  The server side is legacy.  There is no
>>> container.  it isn't a web app.
>>>
>>> Instead it's run as a jar with the classpath generated from maven's
>>> dependency set and listed in the jar's manifest.  Maven generates the
>>> manifest.  The easiest way to accomplish this would be if I could get
>>> these jars into the nexus repository named as IBM named them.  Then I
>>> can get them to a single directory so that the IBM trace facility can
>>> find them.
>>>
>>>
>>> On 07/25/2014 11:39 AM, David Karr wrote:
>>>
>>>> It's conceivable you don't have to mess with any sort of repackaging.
>>>>
>>>> The problem is that the MQ classes that your container loads have to
>>>> be in
>>>> a specific location, with a specific name.  Simply deploy your unmodified
>>>> application into a container with an altered classpath, where those
>>>> "special" jars are in front of everything else on the classpath.
>>>>
>>>>
>>>> On Fri, Jul 25, 2014 at 9:07 AM, Steve Cohen <scohen@javactivity.org>
>>>> wrote:
>>>>
>>>>   I have a client application that was developed with Websphere MQ.  Our
>>>>> company has a Maven nexus repository.  In this repository, we have a
>>>>> place
>>>>> to store third party jars.  In here I stored the MQ jars.  Since the
>>>>> repository demanded a version number I provided one (7.0.1.8,
>>>>> 7.0.1.9, etc)
>>>>> and in each case these version numbers were appended to the jar
>>>>> name.  This
>>>>> led to a clean build and deploy process and everyone was happy.
>>>>>
>>>>> Now we have need of turning on MQ traces.  It turns out that IBM
>>>>> offers no
>>>>> way of doing this unless the jar files are in a single directory named
>>>>> exactly as IBM named them in their release.  So we have to repackage
the
>>>>> application so as to accomplish this.
>>>>>
>>>>> Before I jump into hacking this mess into place, is there a recommended
>>>>> way of handling this so that the maven repository, maven, and ibm are
>>>>> all
>>>>> happy?
>>>>>
>>>>> Thanks,
>>>>> Steve Cohen
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>


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


Mime
View raw message