Comments (6)
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.
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.
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.
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.
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.
This issue has been automatically closed due to inactivity. If it is still valid, please post a comment.
from bnd-platform.
Related Issues (20)
- create eclipse plugin HOT 1
- Support for Gradle 3/4 HOT 3
- Create 1.6 release and publish 1.7 snapshot? HOT 4
- "Could not retrieve POM" spam HOT 2
- SSL issues with cloudfront.net when trying to download Eclipse HOT 4
- Avoid 'Require-Capability' header? HOT 2
- Generated update site does not work HOT 3
- OptionalImport not working HOT 2
- feature.xml does not contain all dependencies HOT 2
- Setting buildDir does not work HOT 2
- fetchSources = true adds source bundles to feature HOT 11
- Getting java.util.NoSuchElementException on updateSite goal HOT 3
- Generated updatesite not working due to missing filters HOT 2
- Gradle 6 Incompatibility HOT 8
- extracting Bundle-License from pom.xml does not work HOT 1
- Not all bundles are downloaded HOT 2
- Default location of eclipseMirror no longer available HOT 7
- Add new releases to Gradle Plugin Portal HOT 1
- bndtools < 5.3 may create invalid ZIP file extra fields (jar loading exceptions with recent JRE versions) HOT 5
- Dependency Dashboard
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bnd-platform.