-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using org.gwtproject.http:gwt-http:1.0.0-RC3 fails finding elemental2 sources #126
Comments
Thanks for the report and for helping debug this in gitter. The root cause is that when gradle produces a pom for publishing to maven, it's own api vs implementation distinction is expressed in the maven pom, even though maven doesn't know how to consume it. For traditional Java projects, where the already-compiled bytecode is also present in the repo server this is sufficient, and will help downstream gradle/maven builds to keep their compile classpaths slightly smaller. However, this is harmful for J2CL projects, as unlike jvm bytecode, j2cl output does not have a version imprinted in it, and makes no promises about forward/backward compatibility - an entire application must ensure that it uses this same version of J2CL to build all of its dependencies. Without published transpiled output, the published pom must be assumed to be reliable to not only depend on an artifact, but build against it. As gwt-http has opted to not produce an accurate pom, the maven side of this project must interpret all |
Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. This patch also tests many publicly released gwt modules to ensure that they build cleanly in the plugin, with the hope of avoiding this issue in the future. There are several commented out dependencies, to avoid trying to build gwt-dom until the next release is ready. Bug Vertispan#127 is filed for followup. Fixes Vertispan#126
Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. This patch also tests many publicly released gwt modules to ensure that they build cleanly in the plugin, with the hope of avoiding this issue in the future. There are several commented out dependencies, to avoid trying to build gwt-dom until the next release is ready. Bug Vertispan#127 is filed for followup. Fixes Vertispan#126
Very nice write-up. |
Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. A separate commit will include a test case to verify that the published gwt modules in maven central work properly. Fixes Vertispan#126
Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. A separate commit will include a test case to verify that the published gwt modules in maven central work properly. Fixes #126
Tests for issue Vertispan#126, PR Vertispan#130
Tests for issue Vertispan#126, PR Vertispan#130
…pan#130) Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. A separate commit will include a test case to verify that the published gwt modules in maven central work properly. Fixes Vertispan#126
Tests for issue Vertispan#126, PR Vertispan#130
Tests for issue Vertispan#126, PR Vertispan#130
Tests for issue Vertispan#126, PR Vertispan#130
…pan#130) Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. A separate commit will include a test case to verify that the published gwt modules in maven central work properly. Fixes Vertispan#126
Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. This patch also tests many publicly released gwt modules to ensure that they build cleanly in the plugin, with the hope of avoiding this issue in the future. There are several commented out dependencies, to avoid trying to build gwt-dom until the next release is ready. Bug Vertispan#127 is filed for followup. Fixes Vertispan#126
Gradle's "implementation" configuration for dependencies results in published maven poms that are technically accurate for building bytecode, but useless for building J2CL. To fix this, we interpret any scope=runtime as if it says scope=compile. This patch also tests many publicly released gwt modules to ensure that they build cleanly in the plugin, with the hope of avoiding this issue in the future. There are several commented out dependencies, to avoid trying to build gwt-dom until the next release is ready. Bug Vertispan#127 is filed for followup. Fixes Vertispan#126
How to reproduce:
Swap
with
from github.com/treblereel
and the issue goes away. Or patch
AbstractBuildMojo
to mapArtifact.SCOPE_RUNTIME
toDependency.Scope.BOTH
(instead ofRUNTIME
) and the issue goes also awayThe text was updated successfully, but these errors were encountered: