I am migrating a project from maven to bazel and getting error

1,532 views
Skip to first unread message

kunalv...@gmail.com

unread,
Jan 29, 2020, 12:47:54 AM1/29/20
to bazel-discuss
i am following the official bazel documentation for migrating from maven to bazel and used rules_jvm_external to defined external dependencies in workspace file and Build file. But I am getting the follwing error.

 C:/users/kunal_visoulia/_bazel_kunal_visoulia/3f5dzdsz/external/maven/BUILD:1212:1: in deps attribute of jvm_import rule @maven//:commons_digester_commons_digester: rule '@maven//:xml_apis_xml_apis' does not exist
ERROR: Analysis of target '//:everything' failed; build aborted: Analysis of target '@maven//:commons_digester_commons_digester' failed; build aborted
INFO: Elapsed time: 724.364s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (4 packages loaded, 371 targets configured)
    Fetching @remotejdk11_win; Restarting.

and sometimes this:
ERROR: C:/users/kunal_visoulia/_bazel_kunal_visoulia/3f5dzdsz/external/maven/BUILD:501:1: in deps attribute of jvm_import rule @maven//:com_github_stefanbirkner_system_rules: rule '@maven//:junit_junit_dep' does not exist
INFO: Call stack for the definition of repository 'remotejdk11_win' which is a http_archive (rule definition at C:/users/kunal_visoulia/_bazel_kunal_visoulia/3f5dzdsz/external/bazel_tools/tools/build_defs/repo/http.bzl:292:16):
 - C:/users/kunal_visoulia/_bazel_kunal_visoulia/3f5dzdsz/external/bazel_tools/tools/build_defs/repo/utils.bzl:205:9
 - /DEFAULT.WORKSPACE.SUFFIX:249:1

i am using private nexus repo and also the official maven repo. Please help

Jingwen Chen

unread,
Jan 29, 2020, 1:05:33 AM1/29/20
to kunalv...@gmail.com, bazel-discuss
Could you share your `maven_install` snippet, please?

--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/5ae2bf96-9574-4b57-864b-99202f076482%40googlegroups.com.

kunalv...@gmail.com

unread,
Jan 29, 2020, 5:46:17 AM1/29/20
to bazel-discuss
maven_install(
    artifacts = [
              "org.springframework.boot:spring-boot-starter-parent:2.0.2.RELEASE",
       "org.springframework.boot:spring-boot-dependencies:2.0.1.RELEASE",
     "org.springframework.cloud:spring-cloud-dependencies:Finchley.RELEASE",
     "io.pivotal.spring.cloud:spring-cloud-services-dependencies:2.0.2.RELEASE",
      "io.pivotal.spring.cloud:spring-cloud-services-starter-service-registry:2.0.2.RELEASE",
     "org.springframework.boot:spring-boot-starter-actuator:2.0.2.RELEASE",
     "org.springframework.boot:spring-boot-starter-web:2.0.2.RELEASE",
       "org.springframework.cloud:spring-cloud-core:1.2.5.RELEASE",
       "org.springframework.boot:spring-boot-starter-data-jpa:2.0.2.RELEASE",
       
       maven.artifact(
            group = "org.springframework.cloud",
            artifact = "spring-cloud-cloudfoundry-connector",
            version = "2.0.1.RELEASE",
             exclusions = [  maven.exclusion(
                 group = "commons-logging",
            artifact ="commons-logging",
            )],
            neverlink = True,
        ),
       
       maven.artifact(
            group = "org.springframework.boot",
            artifact = "spring-boot-starter-thymeleaf",
            version = "2.0.2.RELEASE",
              exclusions = [ maven.exclusion(
                 group = "commons-logging",
            artifact ="commons-logging",
            )],
            neverlink = True,
        ),
       
      
        "io.springfox:springfox-swagger2:2.0.1",
                 "io.springfox:springfox-swagger-ui:2.0.2",
                 "org.springframework.boot:spring-boot-autoconfigure:2.2.2.RELEASE",
"org.projectlombok:lombok:1.16.20",
"javax.persistence:javax.persistence-api:2.2",
maven.artifact("org.springframework.boot", "spring-boot-starter-test", "2.0.2.RELEASE"),
"org.springframework.boot:spring-boot-starter-data-redis:2.0.2.RELEASE",
            
            
       maven.artifact(
            group = "redis.clients",
            artifact = "jedis",
            version = "2.9.0",
          exclusions = [     maven.exclusion(
                 group = "org.apache.commons",
            artifact ="commons-pool2",
            )]
        ),
               
              
              "org.apache.commons:commons-lang3:3.7",
              "org.apache.commons:commons-pool2:2.5.0",
              "commons-codec:commons-codec:1.11",
              "c3p0:c3p0:0.9.1.2",
              "com.oracle:ojdbc6:11.2.0.3",
              maven.artifact("org.mockito", "mockito-core", "2.15.0"),
              
              "com.google.code.gson:gson:2.8.4",
             
              maven.artifact(
            group = "com.dell.ctm",
            artifact = "ctm-security",
            version = "1.6.9",
            exclusions = [   maven.exclusion(
                 group = "com.dell.ctm",
            artifact ="ctm-utils",
            )]
        ),
             
              
              
              "com.dell.ctm:ctm-model:1.3.9",
              
               maven.artifact(
            group = "com.dell.ctm",
            artifact = "ctm-utils",
            version = "1.5.6",
           exclusions = [    maven.exclusion(
                 group = "org.springframework.boot",
            artifact ="spring-boot-starter-logging",
            )]
            ),
              "io.netty:netty-all:4.1.23.Final",
              "io.projectreactor:reactor-core:3.1.6.RELEASE",
    "com.github.stefanbirkner:system-rules:1.9.0",
              
           
              "com.zaxxer:HikariCP:2.7.9",
              "org.springframework.boot:spring-boot-maven-plugin:2.0.2.RELEASE",          
           "org.jacoco:jacoco-maven-plugin:0.7.9",
           "org.apache.maven.reporting:maven-reporting-api:3.0",
           "org.apache.maven:maven-project:2.2.1",
             
              
              
              
              
              
              
              
              
                
                
         ],
    repositories = [
       
        
        "http/:private nexus repo here",
      

    ],
    resolve_timeout = 18000
)

com.dell.ctm.* are available only on private enxus repo
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-...@googlegroups.com.

Jingwen Chen

unread,
Jan 29, 2020, 10:29:23 AM1/29/20
to kunalv...@gmail.com, bazel-discuss
I've successfully reproduced your error and found the following workaround:

1) Add "xml-apis:xml-apis:1.4.01" and "junit:junit-dep:4.9" to your list of artifacts.
2) Add the version_conflict_policy = "pinned" attribute to maven_install.

The root cause is https://github.com/bazelbuild/rules_jvm_external/issues/250. The missing dependencies are artifacts that relocated to new GAV coordinates, which the coursier resolver cannot handle yet. The general workaround is to manually add the legacy GAV coordinates into maven_install.

Specifically, xml-apis:xml-apis:2.0.2 relocated to xml-apis:xml-apis:1.0.b2 (but 1.4.0.1 wasn't relocated), and junit:junit-dep:4.9 relocated to junit:junit.

To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/5b0fa0e4-b69a-4285-b50d-89578f43a2be%40googlegroups.com.

kunalv...@gmail.com

unread,
Jan 29, 2020, 11:07:29 PM1/29/20
to bazel-discuss
Thank you so much! this fixed the error. 

kunalv...@gmail.com

unread,
Jan 30, 2020, 2:26:13 AM1/30/20
to bazel-discuss
Though it fixed the earlier error but when i again tried building it from command prompt it gave some symbol not found error so i tried opening the project in intellij with bazel plugin. now i am getting  Error:Deriving targets from project directories failed when i try to open this project in intellij and sync fails. 

Jingwen Chen

unread,
Jan 30, 2020, 2:37:44 AM1/30/20
to kunalv...@gmail.com, bazel-discuss
What does your IntelliJ Bazel plugin's Project View file look like (Menu -> Bazel -> Project -> Open Project View File)?

Try using the following project view file:

directories:
  .

derive_targets_from_directories: false

targets:
  //...



To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/c2a1c408-6f66-4fa3-99cc-2718d42d202d%40googlegroups.com.
Message has been deleted

Jingwen Chen

unread,
Jan 30, 2020, 3:54:40 AM1/30/20
to kunalv...@gmail.com, bazel-discuss
How did the build fail? Are there any error messages?

On Thu, Jan 30, 2020 at 4:52 PM <kunalv...@gmail.com> wrote:
i tried that project view file.The sync finished but build failed. all my dependecies in the code files appear in red,i.e.,the external depenedcies are not getting resolved.

--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.

kunalv...@gmail.com

unread,
Jan 30, 2020, 3:56:09 AM1/30/20
to bazel-discuss
i tried that project view file.The sync finished but build failed. all my dependecies in the code files appear in red,i.e.,the external depenedcies are not getting resolved. Also in the intellij console i am getting "cannot find symbol" error on log.info(import lombok.extern.slf4j.Slf4j appears red)

Jingwen Chen

unread,
Jan 30, 2020, 4:02:16 AM1/30/20
to kunalv...@gmail.com, bazel-discuss
> The sync finished but build failed.

Are there any build failure messages in the Bazel Console? You may have to scroll up and find the error message, which should be colored red.

To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/da6a904d-03ea-4c21-a63a-4efe1e2824a6%40googlegroups.com.

kunalv...@gmail.com

unread,
Jan 30, 2020, 4:08:39 AM1/30/20
to bazel-discuss
yes. its "cannot find symbol" for log.info() (import lombok.extern.slf4j.Slf4j appears red in intellij as well as all other external depenedicies). I get no errros while fetching external depeendcies but i guess the first file that builds gives the cannot find symbol error. 

Jingwen Chen

unread,
Jan 30, 2020, 4:25:12 AM1/30/20
to kunalv...@gmail.com, bazel-discuss
Does the build work outside of IntelliJ, in the command line? That is, does `bazel build //package/to:target` succeed? This will help us figure out if it's an IntelliJ plugin issue, or a BUILD file declaration issue.

Does the BUILD target depend on "@maven//:org_projectlombok_lombok"?

To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/95e214fe-277b-4832-a223-10d4a01478fb%40googlegroups.com.

kunalv...@gmail.com

unread,
Jan 30, 2020, 4:28:35 AM1/30/20
to bazel-discuss
also i am getting this error in intellij:
RROR: C:/pdc/counter_range_service/BUILD:2:1: Couldn't build file all.java-manifest: Parsing java package strings for //:all failed (Exit 1)
Jan 30, 2020 2:34:56 PM com.google.idea.blaze.aspect.PackageParser main
SEVERE: Error parsing package strings
java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at com.google.common.util.concurrent.AbstractListeningExecutorService.newTaskFor(AbstractListeningExecutorService.java:51)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:139)
at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:66)
at com.google.idea.blaze.aspect.PackageParser.parsePackageStrings(PackageParser.java:139)
at com.google.idea.blaze.aspect.PackageParser.main(PackageParser.java:77)
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.internal.InternalFutureFailureAccess
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 50 more


Also one more thing, the "all external dependencies appearing red in intelij" thing i am talking about also happens for my other simple maven project but i was able to build that project successfully

kunalv...@gmail.com

unread,
Jan 30, 2020, 4:30:06 AM1/30/20
to bazel-discuss
The same build error(log.info() symbol not found) happens in command line also. and yes the BUILD target depends on "@maven//:org_projectlombok_lombok".

kunalv...@gmail.com

unread,
Jan 30, 2020, 4:34:54 AM1/30/20
to bazel-discuss
The other simple maven project(that i built successfully from commandline) i was talking about also has all the external dependencies appearing red but project builds successfulyy.So it could be a plugin problem.

kunalv...@gmail.com

unread,
Jan 31, 2020, 5:42:10 AM1/31/20
to bazel-discuss
Reply all
Reply to author
Forward
0 new messages