Skip to content

Commit

Permalink
Treat pom scope=runtime as compile to make gradle poms usable
Browse files Browse the repository at this point in the history
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 #127 is
filed for followup.

Fixes #126
  • Loading branch information
niloc132 committed Mar 1, 2022
1 parent 9cd821f commit 37500ac
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 1 deletion.
154 changes: 154 additions & 0 deletions j2cl-maven-plugin/src/it/gwt-modules-project/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>gwt-modules-project</groupId>
<artifactId>gwt-modules-project</artifactId>
<version>1.0</version>

<properties>
</properties>

<dependencies>
<dependency>
<groupId>org.gwtproject.http</groupId>
<artifactId>gwt-http</artifactId>
<version>1.0.0-RC3</version>
</dependency>
<dependency>
<groupId>org.gwtproject.json</groupId>
<artifactId>gwt-json</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.gwtproject.layout</groupId>-->
<!-- <artifactId>gwt-layout</artifactId>-->
<!-- <version>1.0.0-RC1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.gwtproject.event</groupId>-->
<!-- <artifactId>gwt-event-dom</artifactId>-->
<!-- <version>1.0.0-RC1</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.gwtproject.event</groupId>
<artifactId>gwt-event-legacy</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.event</groupId>
<artifactId>gwt-logical-event</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.gwtproject.animation</groupId>-->
<!-- <artifactId>gwt-animation</artifactId>-->
<!-- <version>1.0.0-RC1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.gwtproject.aria</groupId>-->
<!-- <artifactId>gwt-aria</artifactId>-->
<!-- <version>1.0.0-RC1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.gwtproject.dom</groupId>-->
<!-- <artifactId>gwt-dom</artifactId>-->
<!-- <version>1.0.0-RC1</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.gwtproject.xhr</groupId>
<artifactId>gwt-xhr</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.safehtml</groupId>
<artifactId>gwt-safehtml</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.safehtml</groupId>
<artifactId>gwt-safecss</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.regexp</groupId>
<artifactId>gwt-regexp</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.core</groupId>
<artifactId>gwt-core</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.xml</groupId>
<artifactId>gwt-xml</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.callback</groupId>
<artifactId>gwt-callback</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.timer</groupId>
<artifactId>gwt-timer</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.typedarrays</groupId>
<artifactId>gwt-typedarrays</artifactId>
<version>1.0.0-RC2</version>
</dependency>
<dependency>
<groupId>org.gwtproject.user.window</groupId>
<artifactId>gwt-window</artifactId>
<version>1.0.0-RC2</version>
</dependency>
<dependency>
<groupId>org.gwtproject.place</groupId>
<artifactId>gwt-places</artifactId>
<version>1.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.gwtproject.user.history</groupId>
<artifactId>gwt-history</artifactId>
<version>1.0.0-RC1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>@project.groupId@</groupId>
<artifactId>@project.artifactId@</artifactId>
<version>@project.version@</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>google-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/google-snapshots/</url>
</repository>
</repositories>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ private Dependency.Scope translateScope(String scope) {
case Artifact.SCOPE_PROVIDED:
return Dependency.Scope.COMPILE;
case Artifact.SCOPE_RUNTIME:
return Dependency.Scope.RUNTIME;
return Dependency.Scope.BOTH;
// These two should already be removed by earlier filtering, throw anyway
case Artifact.SCOPE_IMPORT:
case Artifact.SCOPE_SYSTEM:
Expand Down

0 comments on commit 37500ac

Please sign in to comment.