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> >>>>> >>>> >>>> >>> >>