Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 来自源的渐变非托管依赖项_Java_Gradle_Dependency Management - Fatal编程技术网

Java 来自源的渐变非托管依赖项

Java 来自源的渐变非托管依赖项,java,gradle,dependency-management,Java,Gradle,Dependency Management,我需要在gradle中配置对另一个项目(P1)的源的依赖项。不幸的是,不可能获得上述项目的jar,也不可能将其配置为使用gradle(公司限制) 现在,我正在编写一个新的java项目(Pnew),它依赖于P1。这两个项目目前都在开发中(甚至我的工作可能包括对P1的更改) 通过配置额外的源集 sourceSets { main { java { srcDir '../../P1/src' } } } 我设法摆脱了依赖于P1的编译错误。但这没有帮助。自然地,P1

我需要在gradle中配置对另一个项目(
P1
)的源的依赖项。不幸的是,不可能获得上述项目的jar,也不可能将其配置为使用gradle(公司限制)

现在,我正在编写一个新的java项目(
Pnew
),它依赖于
P1
。这两个项目目前都在开发中(甚至我的工作可能包括对
P1
的更改)

通过配置额外的源集

sourceSets {
  main {
    java {
      srcDir '../../P1/src'
    }
  }
}
我设法摆脱了依赖于
P1
的编译错误。但这没有帮助。自然地,
P1
的所有类都成为了
Pnew
的一部分,这当然不是本意

我的目标是:

dependencies {
  compile fileTree(dir: '../../P1/src/', include:'*.java')
}
但这似乎不起作用


如何配置这种依赖关系?

您可以尝试以下操作:

include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
dependencies {
      ...
      compile project(':P1')
      ...
}
在具有
Pnew
build.gradle
的同一目录中包含名为
settings.gradle
的文件。在该文件中输入以下内容:

include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
dependencies {
      ...
      compile project(':P1')
      ...
}
其中path是指向
P1 build.gradle
文件的相对路径

现在在您的
pnewbuild.gradle中添加以下内容:

include 'P1'
project(':P1').projectDir = = new File(rootDir, '../path/P1/')
dependencies {
      ...
      compile project(':P1')
      ...
}
有了它,您可以使用P1作为依赖项来编译您的Pnew项目

**编辑**

如果项目不是gradle项目,并且无法从项目生成jar,请尝试以下操作:

dependencies {
    compile files("relative/path/to/classes/dir")
}

不幸的是,P1没有(并且明年)将不在gradle控制之下。因此,我相信这是行不通的。你对“类”依赖的“编辑”告诉了我问题的根源:我需要能够编译P1。这需要一些信息(通常存储在构建脚本中)。因此,我需要开始以不同的方式思考。。。。最后,我被允许将P1置于gradle控制之下(我简直不敢相信我听到的!!!)