Re: Why no Class-Path manifest attribute?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/06/2014 05:12 PM, Florian Weimer wrote:
> On 02/06/2014 01:04 PM, Mikolaj Izdebski wrote:
> 
>> maven-local builds packages using upstream POMs.  If they are using
>> techniques inappropriate for Fedora (like maven-jajjar-plugin,
>> maven-shade-plugin, maven-assembly-plugin) then its packager
>> responsibility to modify POMs in %prep so that they conform to our
>> policy and standards.  There are even specialised RPM macros to help
>> with that (for example %pom_remove_plugin, see man pom_remove_plugin).
> 
> Is maven-assembly-plugin really wrong, assuming that dependencies have a
> "provided" scope?  I'm adding <scope>provided</scope> like this during
> the %prep stage, and appears to prevent copying over classes:
> 
> # Do not bundle dependencies in the generated JAR file.
> %pom_xpath_inject
> "/pom:project/pom:dependencies/pom:dependency[./pom:artifactId =
> 'victims-lib' or ./pom:artifactId = 'maven-model']"
> "<scope>provided</scope>"

Modifying upstream POM files changing dependency scope to "provided" is
purely wrong in many cases as such POMs won't be usable to build other
packages.

Maven Assembly Plugin can generate assembles with dependencies with any
scope you want.  By default it's "runtime", but that's just a matter of
configuration.

> Now I only need to figure out a way to auto-generate the dependencies
> and the classpath entries for %jpackage_script.  This will not
> completely fix things (because the JAR list will still break
> encapsulation), but it will remove a lot of the pain.

Transitive dependencies aren't handled automatically by %jpackage_script
for a good reason -- often they are very excessive.  Maven not only
offers many dependency scopes, but allows optional dependencies and it's
practically impossible to generate the proper classpath.  Packager needs
to do that manually.

It might be possible to generate classpath and allow packagers to
exclude unwanted dependencies, but that's a future feature.  You would
need to file a RFE for javapackages-tools.

-- 
Mikolaj Izdebski
IRC: mizdebsk
--
java-devel mailing list
java-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/java-devel





[Index of Archives]     [Red Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux