Comments (3)
@Jolanrensen
I think that keeping any custom plugins decoupled from each other is the main governing principal to adhere in this context. So keeping that in mind I think of the following strategy:
- I am going to add to each cross compile variant a "landing" area where specific code for that variant should be.
- Using JCP you can preprocess code and direct the output to that "landing" area.
- Controlling build lifecycle should still be the same hopefully like in a simple non cross built scenario (as per JCP Gradle examples)
Regarding the other comments in your sample project. They are valid and should be put as issues on the issue board.
Thanks for the sample project!
Any feedback is welcomed
from gradle-crossbuild-scala.
Hi @Jolanrensen I hope I understand you correctly, If so "injection" of different pieces of code per Scala version will be solved by #78. To handle also different spark versions , Its a question whether mapping code pieces to different Scala versions satisfies your project's needs. Otherwise we will need to come up with a more generic approach to code pieces mapping (not only Scala version based). It will help a lot if you could provide scaled down project (two subprojects is enough) for me to test this feature on. It should include small enough code change between the two subprojects that if not done correctly by the plugin the compilation fails.
from gradle-crossbuild-scala.
@prokod I made a small sample project with a scala- and kotlin submodule, similar to my own project. https://github.com/Jolanrensen/gradle-crossbuild-sample
It aims to build the submodules for many scala/spark combinations using java-comment-processor to solve incompatibilities with the scala/spark library on older versions.
IntelliJ doesn't always plays nice with jcp yet, despite my attempts, but I wrote some comments for how to handle those. If you're using another IDE you're probably fine.
Edit: jpc cooperation is better now
from gradle-crossbuild-scala.
Related Issues (20)
- Current maintenance and development effort of plugin HOT 4
- Possible root cause for `SourceSet with name 'crossBuildScala_211' not found` HOT 5
- Publish Sources and JavaDoc HOT 4
- gradle 7 support. HOT 1
- For an implementation dependency the compile scope is used instead of runtime scope in the generated pom HOT 1
- Test suite takes long time to complete
- When using Gradle Kotlin scripts and using the Plugin's ext property Exception is raised
- To add a task that will run all cross build jar tasks in a bulk
- Plugin Building - allow project to publish to maven local
- Support Gradle shadow plugin
- Support for Scala 3 HOT 2
- pom dependency scopes correct for main build but incorrect for crossbuilds HOT 1
- Support incremental build HOT 4
- Emulating sbt's CrossVersion.for3Use2_13 HOT 1
- [Need help] Adding Scala 3 support to an existing Scala 2.xx gradle build HOT 2
- Set `-release` parameter instead of `-target` HOT 14
- Plugin wrongly replaces scala-library dependency with scala3-library_3 as part of dependency resolution
- Target compilation strategy names are confusing / misleading
- Add target compilation strategy none HOT 1
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 gradle-crossbuild-scala.