java – Maven / eclipse,eclipse如何尊重maven运行时范围?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Maven / eclipse,eclipse如何尊重maven运行时范围?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1405字,纯文字阅读大概需要3分钟。
内容图文
![java – Maven / eclipse,eclipse如何尊重maven运行时范围?](/upload/InfoBanner/zyjiaocheng/779/677b92fdd98c4973918c40620a92c302.jpg)
在pom.xml中,我包含logback& SLF4J如下所示,使用maven build可以很好地工作.如果我直接从logback导入,它将给出编译错误.
<dependencyManagement>
<dependencies>
<!-- We want to have slf4j with scope compile -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- logback we only want runtime, compiletime we want SLF4J -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
但是我如何让eclipse尊重logback依赖的运行时范围并阻止那里的import-advice?
解决方法:
不幸的是,似乎不可能在Eclipse上进行正常构建,正如@ A4L所提到的,这是一个已知的bug,检查Bug 414645和Bug 376616.Eclipse(m2e)无法正确管理Maven依赖范围.
但是,如果将运行时依赖项放在概要文件上,则Eclipse不会将它们添加到类路径中(但默认情况下,概要文件不应处于活动状态).我刚刚在Eclipse Mars上测试过,它运行得很好.
因此,在您的情况下,您可以添加到您的POM:
<profiles>
<profile>
<id>runtime</id>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
</profiles>
因此,它不能用于在Eclipse上编译.但是,您的构建需要在运行时使用它,在这种情况下使用-Pruntime运行.
虽然将POM和构建调整到IDE的问题可能并不理想,但实现目标可能是一个很好的折衷方案.
内容总结
以上是互联网集市为您收集整理的java – Maven / eclipse,eclipse如何尊重maven运行时范围?全部内容,希望文章能够帮你解决java – Maven / eclipse,eclipse如何尊重maven运行时范围?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。