Java 包包含具有相同名称的对象和包
使用Maven或Eclipse编译某些Scala时遇到问题,我试图从Java jar导入一个类,该jar包含名称空间和同名类。Java 包包含具有相同名称的对象和包,java,eclipse,scala,jenkins,maven-3,Java,Eclipse,Scala,Jenkins,Maven 3,使用Maven或Eclipse编译某些Scala时遇到问题,我试图从Java jar导入一个类,该jar包含名称空间和同名类。 但是,我可以使用scalac进行编译 例如,Java项目(jar)包含: src/foo/bar.java src/foo/bar/some_resource.txt -> foobar.jar Scala project references foobar.jar Foobartest.scala: import foo.bar class foob
但是,我可以使用scalac进行编译 例如,Java项目(jar)包含:
src/foo/bar.java
src/foo/bar/some_resource.txt
-> foobar.jar
Scala project references foobar.jar
Foobartest.scala:
import foo.bar
class foobartest {
}
编译器抱怨:
package foo contains object and package with same name: bar
one of them needs to be removed from classpath
将Maven 3.0.03/Eclipse3.7.1与Scala 2.9.0.1一起使用(以及Maven Scala插件
)
我遇到问题的jar是jenkins-core-1.399.jar
——它肯定包含多个实例,其中存在同名的名称空间和对象。我正在尝试用Scala编写Jenkins插件(我可以用Java编写,但更喜欢Scala,因为我们所有的库都在Scala中),它依赖于使用Maven-
.中概述了这种限制 如中所述,您可以尝试使用“
解决术语冲突”
”,如中所实现:
添加了一个-Y
选项来解决包和对象之间的命名空间冲突。这是一个直言不讳的工具:如果人们有很多这样的冲突,他们需要以个人微妙的方式来解决,那么他们很可能仍然运气不佳
实际的编译器选项是“-Yresolve term conflict:strategy”,其中strategy是包、对象或错误。嘿,你有没有用Scala编写过Jenkins插件?我在试sameYes,它在我的github上。我试图发表它,但老实说,我没有得到詹金斯人的大力支持。我也写了一个,并发布了它,但无法从插件管理器下载maven中的等效选项是什么?maven中的等效选项是什么?@Saurabh我没有发现任何明显的maven等效选项。我得到了它,在这里添加了:。
val termConflict = ChoiceSetting ("-Yresolve-term-conflict", "strategy", "Resolve term conflicts", 113 List("package", "object", "error"), "error")
// Some jars (often, obfuscated ones) include a package and
// object with the same name. Rather than render them unusable,
// offer a setting to resolve the conflict one way or the other.
// This was motivated by the desire to use YourKit probes, which
// require `yjp.jar` at runtime. See SI-2089.