使用Azure管理库的Maven项目出现未知编译错误求助
Maven编译报错:使用Azure管理库生成访问令牌时遇未知编译问题
我正在尝试在Maven项目中使用Microsoft Azure管理库管理访问令牌,通过com.microsoft.azure.credentials.ApplicationTokenCredentials生成访问令牌以管理Azure资源,但编译时遭遇了未知错误。以下是相关信息及排查建议:
错误日志
[[1;36mDEBUG[m] incrementalBuildHelper#beforeRebuildExecution [[1;34mINFO[m] Compiling 2 source files to C:\GIT\common-token-library\target\classes [[1;36mDEBUG[m] incrementalBuildHelper#afterRebuildExecution [[1;34mINFO[m] ------------------------------------------------------------- [[1;31mERROR[m] COMPILATION ERROR : [[1;34mINFO[m] ------------------------------------------------------------- [[1;31mERROR[m] An unknown compilation problem occurred [[1;34mINFO[m] 1 error [[1;34mINFO[m] ------------------------------------------------------------- [[1;34mINFO[m] ------------------------------------------------------------------------ [[1;34mINFO[m] BUILD FAILURE [[1;34mINFO[m] ------------------------------------------------------------------------ [[1;34mINFO[m] Total time: 6.889 s [[1;34mINFO[m] Finished at: 2018-05-18T07:53:58+01:00 [[1;34mINFO[m] Final Memory: 19M/206M [[1;34mINFO[m] ------------------------------------------------------------------------ [[1;31mERROR[m] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project common-token-library: Compilation failure [[1;31mERROR[m] An unknown compilation problem occurred [[1;31mERROR[m] -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project common-token-library: Compilation failure An unknown compilation problem occurred at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure An unknown compilation problem occurred at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858) at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 more [[1;31mERROR[m] [[1;31mERROR[m] [[1;31mERROR[m] For more information about the errors and possible solutions, please read the following articles: [[1;31mERROR[m] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
本地Java版本
java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
POM依赖(提供的片段不完整)
<dependencies> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure</artifactId> <version>1.10.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>adal4j</artifactId> <version>
排查建议
1. 补全并修正POM依赖
你提供的adal4j依赖片段没有填写版本号且标签未闭合,这会直接导致Maven无法正确解析依赖。根据Azure SDK 1.10.0的兼容版本,建议使用adal4j 1.6.3版本,完整配置如下:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>adal4j</artifactId> <version>1.6.3</version> </dependency>
2. 明确指定Maven编译器版本
Maven Compiler Plugin 3.1默认可能未绑定Java版本,虽然你本地是Java 8,但最好在POM中明确指定source和target版本,避免编译时版本不匹配:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
3. 清理Maven缓存并重新构建
有时候本地Maven依赖缓存损坏会导致奇怪的编译问题,执行以下命令强制更新依赖并重新构建:
mvn clean install -U
4. 检查代码中的语法错误
日志只显示“未知编译问题”,大概率是代码中存在语法错误,比如:
- 错误导入
ApplicationTokenCredentials类 - 调用该类构造方法或方法时参数不匹配
- 遗漏必要的import语句
仔细检查使用ApplicationTokenCredentials的代码部分,确认语法和调用逻辑正确。
内容的提问来源于stack exchange,提问作者Vighneshwar Madas
相关产品推荐
相关产品推荐

