Was too much abused by libs and not supported everywhere :(

Le 8 févr. 2018 22:39, "Lukasz Cwik" <lc...@google.com> a écrit :

> It is unfortunate that setting Class-Path is so broken.
>
> On Wed, Feb 7, 2018 at 10:55 PM, Romain Manni-Bucau <rmannibu...@gmail.com
> > wrote:
>
>> Not really:
>> 1. I need to have the gav
>> 2. Please never set Class-Path of the manifest. It leads to broken
>> runtime in most environments :(.
>>
>>
>> Le 8 févr. 2018 05:19, "Lukasz Cwik" <lc...@google.com> a écrit :
>>
>>> Looking at the Gradle shadow plugin, it seems like it is doing what you
>>> ask. Does this fit your usecase?
>>>
>>> From: http://imperceptiblethoughts.com/shadow/#configuring_the_run
>>> time_classpath
>>>
>>> Additionally, Shadow automatically configures the manifest of the
>>> shadowJar task to contain a Class-Path entry in the JAR manifest. The
>>> value of the Class-Path entry is the name of all dependencies resolved
>>> in the shadow configuration for the project.
>>>
>>> dependencies {
>>>   shadow 'junit:junit:3.8.2'
>>> }
>>>
>>> Inspecting the META-INF/MANIFEST.MF entry in the JAR file will reveal
>>> the following attribute:
>>>
>>> Class-Path: junit-3.8.2.jar
>>>
>>>
>>>
>>> On Wed, Feb 7, 2018 at 9:27 AM, Romain Manni-Bucau <
>>> rmannibu...@gmail.com> wrote:
>>>
>>>>
>>>>
>>>> 2018-02-07 18:21 GMT+01:00 Lukasz Cwik <lc...@google.com>:
>>>>
>>>>> What kinds of features would this enable within the Apache Beam SDK or
>>>>> allow for users to write (looking for some reason as to why this is not
>>>>> just a one off change to support a use case)?
>>>>>
>>>>
>>>> It allows to build a classpath and to rely on beam without requiring
>>>> maven to resolve the poms and it is way faster than resolving pom model. I
>>>> full ack it is a bit limit like case but it doesn't cost much to beam too
>>>> so thought I could ask before
>>>> doing something 100% custom.
>>>>
>>>>
>>>>> Would it list all the transitive dependencies?
>>>>>
>>>>
>>>> all runtime ones (= not test and provided ones - even if i can live
>>>> with it listing them all, I just don't see why it would)
>>>>
>>>>
>>>>>
>>>>> How would you test that it works?
>>>>>
>>>>
>>>> It is a maven plugin so not sure it requires a test in beam itself but
>>>> on my side I have some test for this kind of thing already running a server
>>>> from this kind of file typically.
>>>>
>>>>
>>>>>
>>>>> On Wed, Feb 7, 2018 at 7:23 AM, Romain Manni-Bucau <
>>>>> rmannibu...@gmail.com> wrote:
>>>>>
>>>>>> Hi guys,
>>>>>>
>>>>>> I have a use case where I would resolve beam classpath
>>>>>> programmatically. I wonder if it would be possible to add in META-INF (or
>>>>>> BEAM-INF, in the jar is the main request ;)) a dependencies.txt (or other
>>>>>> file) listing all the mandatory dependencies. I'm mainly interested by 
>>>>>> the
>>>>>> java sdk core module but can be beneficial to others as well.
>>>>>>
>>>>>> With maven it is just a matter of defining:
>>>>>>
>>>>>> <plugin>
>>>>>>   <groupId>org.apache.maven.plugins</groupId>
>>>>>>   <artifactId>maven-dependency-plugin</artifactId>
>>>>>>   <version>${dependency-plugin.version}</version>
>>>>>>   <executions>
>>>>>>     <execution>
>>>>>>       <id>create-META-INF/dependencies.txt</id>
>>>>>>       <phase>prepare-package</phase>
>>>>>>       <goals>
>>>>>>         <goal>list</goal>
>>>>>>       </goals>
>>>>>>       <configuration>
>>>>>>         
>>>>>> <outputFile>${project.build.outputDirectory}/META-INF/dependencies.txt</outputFile>
>>>>>>       </configuration>
>>>>>>     </execution>
>>>>>>   </executions>
>>>>>> </plugin>
>>>>>>
>>>>>> with gradle it is a loop around a resolvedconfiguration which dumps
>>>>>> the artifacts in a maven format (group:name:type:version)
>>>>>>
>>>>>> My interest of it being in beam is to be able to upgrade beam without
>>>>>> having to re-release these metadata.
>>>>>>
>>>>>> Is it something the project could be interested in?
>>>>>>
>>>>>> Romain Manni-Bucau
>>>>>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>>> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>>> <http://rmannibucau.wordpress.com> | Github
>>>>>> <https://github.com/rmannibucau> | LinkedIn
>>>>>> <https://www.linkedin.com/in/rmannibucau> | Book
>>>>>> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>

Reply via email to