我有项目B
,具体取决于项目A
,这是一个拥有它自己的依赖项的库。
在项目A
中,我引用定义Dependency1Base<T>
和Dependency2Class
的程序集,并定义MyClass
,如下所示:
namespace MyNamespace
{
public class MyClass: Dependency1Base<Dependency2Class>
{
}
}
在项目B
中,我只是引用项目A
并尝试实例MyClass
namespace MyNamespace
{
public class B
{
public void main ()
{
var myInstance = new MyClass();
}
}
}
项目A
构建正常,但是当我尝试构建项目B
时,我收到错误,告诉我Dependency1Base
和Dependency2Class
是在程序集中定义的没有引用。因此,我想知道是否有办法在项目A
中关联此定义,以便我不必将这些引用添加到项目B
中?或者我是否总是需要在使用A
的任何其他项目中引用项目MyClass
的依赖项?
答案 0 :(得分:0)
是的,您需要引用您在项目中使用的所有类或对象。但是你不必参考更多。
如果您的班级C
继承自B
,而A
本身则继承自C
:
在B
中,您必须引用A
,如果您使用来自A
的某些属性或方法,则必须引用B
在A
中,您必须引用install.packages("rJava")
install.packages("DBI")
install.packages("RJDBC")
library(DBI)
library(rJava)
library(RJDBC)
cp <- c(
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/commons-codec-1.3.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/commons-logging-1.1.1.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/hive_metastore.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/hive_service.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/httpclient-4.1.3.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/httpcore-4.1.3.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/libfb303-0.9.0.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/libthrift-0.9.0.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/log4j-1.2.14.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/ql.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/slf4j-api-1.5.11.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/slf4j-log4j12-1.5.11.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/TCLIServiceClient.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/zookeeper-3.4.6.jar"
)
.jinit(classpath<-cp)
drv <- JDBC("com.cloudera.impala.jdbc4.Driver", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/ImpalaJDBC4.jar")
con <- dbConnect(drv, "jdbc:impala://your_impala_host_address:21050;AuthMech= your authmech number if applicable", "username", "pwd")
data <- dbGetQuery(con, "SELECT * FROM mydb limit 25")
summary(data)
在A中,你不必参考任何东西。