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