Giter Club home page Giter Club logo

Comments (6)

fuemf avatar fuemf commented on June 15, 2024

BTW, I found a workaround to my problem, but it is not the most elegant. It is possible to define the actual artifact file on execution time only.

I use this task to do it

task configurePublications(dependsOn: 'bundles') <<  {
    project.platform.artifacts.values().each { bundleArt ->
        if (!bundleArt.isSource() && bundleArt instanceof org.standardout.gradle.plugin.platform.internal.ResolvedBundleArtifact) {
            publishing.publications."mavenJava${bundleArt.name}".artifact("${buildDir}/plugins/${bundleArt.targetFileName}")
        }
    }
}

from bnd-platform.

ascertrobw avatar ascertrobw commented on June 15, 2024

Interesting - had the same issue, but came to different workaround our side

subprojects {
...
    publishing {
        publications {
            bundle(MavenPublication) {
                //TODO - bit fugly. Wonder if there's better way to define the artifact produced by BND!
                artifact file("$buildDir/plugins/$project.name" + "_" + "$project.version" + ".jar")
                //TODO - what if a subproj produces multiple artifacts? Poss not that advisable, but could happen
            }
        }
    }  
...
 }

The above relies on the fact that all our bundling subbprojects set a version = in their build.gradle, and that only one BND artifact is produced by each subproject of a consistent name. Works for our model, but possibly not other peoples.

I'm a complete Gradle newbie, so I'm sure yours is tidier!

from bnd-platform.

sradi avatar sradi commented on June 15, 2024

Hi,

I would also like to combine Maven Publishing with the result of the bundles task.
@fuemf 's nice workaround doesn't work for me, as I would like to publish all artifacts, including their transitive dependenies. These are unknown during configuration time.

Maybe it's possible to accomplish this, if the bnd-platform plugin uses Lazy Configuration (https://docs.gradle.org/current/userguide/lazy_configuration.html)?!

from bnd-platform.

stempler avatar stempler commented on June 15, 2024

Hi,

to create Maven artifacts my approach is to apply my unpuzzle fork to the created update site. It will analyse the dependencies to turn them into into proper Maven dependencies for use also in non-OSGi applications. Not sure if that's also a use case for you, or if you only need artifacts of OSGi bundles w/o proper Maven dependencies.

You can find an example where this is used in the hale studio project build. It uses the built update site (in that case using Maven Tycho). In this example there is also some additional logic present to replace bundles for third party libraries by their original Maven artifacts (which are already present in Maven Central or similar), as the use case here is to use the artifacts outside OSGi and we like to use the original dependencies there to avoid duplicates on the classpath.

Hope that helps

from bnd-platform.

github-actions avatar github-actions commented on June 15, 2024

This issue has been automatically marked as stale because it has not had activity in the last 60 days. It will be closed in two weeks if no further activity occurs. Thank you for your contributions.

from bnd-platform.

github-actions avatar github-actions commented on June 15, 2024

This issue has been automatically closed due to inactivity. If it is still valid, please post a comment.

from bnd-platform.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.