Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Mention --java_language_version and --tool_java_language_version#233

Open
g-ortuno wants to merge 1 commit intogoogle:master from
g-ortuno:patch-2
Open

Mention --java_language_version and --tool_java_language_version #233
g-ortuno wants to merge 1 commit intogoogle:master from
g-ortuno:patch-2

Conversation

@g-ortuno
Copy link

@g-ortuno g-ortuno commented May 11, 2023

Context: I just spent three days trying to build copybara in an external workspace and kept getting the following error (which is also mentioned in #221 ):

external/com_github_google_copybara/java/com/google/copybara/onboard/core/AskInputProvider.java:117: error: cannot find symbol
 var unused = input.convert(s, resolver);
 ^
 symbol: class var
 location: class Mode
external/com_github_google_copybara/java/com/google/copybara/onboard/core/InputProviderResolverImpl.java:60: error: cannot find symbol
 var unused = generator.consumes();
 ^
 symbol: class var
 location: class InputProviderResolverImpl

I realized that I needed to update my .bazelrc only after combing through the changes trying to find a clue as to how to fix the issue.

I'm pretty new to bazel external repositories, having mostly worked with blaze and Chromium's GN, but I thought mentioning this in the docs could help other developers starting with bazel.

If the fix is too obvious, feel free to ignore :)

rpavlik and sin-ack reacted with thumbs up emoji
Adds a paragraph that suggests adding `--java_language_version` and `--tool_java_language_version` to .bazelrc. Without these, developers will get the following error when trying to build Copuybara from an external workspace
```
external/com_github_google_copybara/java/com/google/copybara/onboard/core/AskInputProvider.java:117: error: cannot find symbol
 var unused = input.convert(s, resolver);
 ^
 symbol: class var
 location: class Mode
external/com_github_google_copybara/java/com/google/copybara/onboard/core/InputProviderResolverImpl.java:60: error: cannot find symbol
 var unused = generator.consumes();
 ^
 symbol: class var
 location: class InputProviderResolverImpl
```
Copy link

sin-ack commented Oct 7, 2024

FYI I also needed to add build --java_runtime_version=11.

Copy link
Collaborator

This shouldn't be needed if you keep $PROJECT_ROOT/.bazelrc that comes in the repository:

<o> [master] ~/dev/copybara$ bazel build //java/com/google/copybara:copybara_deploy.jar
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
INFO: Analyzed target //java/com/google/copybara:copybara_deploy.jar (113 packages loaded, 1662 targets configured).
INFO: Found 1 target...
Target //java/com/google/copybara:copybara_deploy.jar up-to-date:
 bazel-bin/java/com/google/copybara/copybara_deploy.jar
INFO: Elapsed time: 68.812s, Critical Path: 20.05s
INFO: 303 processes: 8 internal, 208 darwin-sandbox, 87 worker.
INFO: Build completed successfully, 303 total actions
<o> [master] ~/dev/copybara$ rm .bazelrc
<o> [master] ~/dev/copybara$ bazel build //java/com/google/copybara:copybara_deploy.jar
INFO: Build options --java_language_version, --jvmopt, --test_env, and 1 more have changed, discarding analysis cache.
INFO: Analyzed target //java/com/google/copybara:copybara_deploy.jar (0 packages loaded, 1662 targets configured).
INFO: Found 1 target...
ERROR: /Users/malcon/dev/copybara/java/com/google/copybara/http/auth/BUILD:19:13: Building java/com/google/copybara/http/auth/libauth.jar (3 source files) and running annotation processors (StarlarkMethodProcessor) failed: (Exit 1): java failed: error executing command (from target //java/com/google/copybara/http/auth:auth) external/remotejdk11_macos_aarch64/bin/java -XX:-CompactStrings '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED' ... (remaining 16 arguments skipped)
java/com/google/copybara/http/auth/BearerInterceptor.java:41: warning: as of release 10, 'var' is a restricted local variable type and cannot be used for type declarations or as the element type of an array
 var unused = req.getHeaders().setAuthorization("Bearer " + token);
 ^
java/com/google/copybara/http/auth/BearerInterceptor.java:41: error: cannot find symbol
 var unused = req.getHeaders().setAuthorization("Bearer " + token);
 ^
 symbol: class var
 location: class BearerInterceptor
Target //java/com/google/copybara:copybara_deploy.jar failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 10.568s, Critical Path: 7.03s
INFO: 209 processes: 11 internal, 155 darwin-sandbox, 43 worker.
FAILED: Build did NOT complete successfully
<o> [master] ~/dev/copybara$

Copy link
Collaborator

Ahh I see you use it as part of a workspace. Rather than recommending changing .bazelrc, that most of the users won't need, you could add a note about how to embed in a workspace? (and say to add the flags in $COPYBARA_ROOT/.bazelrc to $YOURPROJECT/.bazelrc)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /