Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 gradle通过命令行参数指定类路径_Java_Gradle_Intellij Idea - Fatal编程技术网

Java gradle通过命令行参数指定类路径

Java gradle通过命令行参数指定类路径,java,gradle,intellij-idea,Java,Gradle,Intellij Idea,我真的很想做一些像./gradlew build-cp/$HOME/my/custom/testerLibrary.jar这样的事情,但是我在任何地方都找不到一个直接的答案。我有一个特例,我需要在类路径中添加一个jar,因为我用于手动测试的类需要它,但我的项目中没有其他需要它,我不想在build.gradle中包含它 我应该在手动运行项目A调试项目B的情况下创建两个项目吗?您可以从相同的源代码创建两个JAR: 生产应用 手动测试应用程序 上面列表中的手动测试应用程序2可以使用将所需JAR附加到类

我真的很想做一些像./gradlew build-cp/$HOME/my/custom/testerLibrary.jar这样的事情,但是我在任何地方都找不到一个直接的答案。我有一个特例,我需要在类路径中添加一个jar,因为我用于手动测试的类需要它,但我的项目中没有其他需要它,我不想在build.gradle中包含它


我应该在手动运行项目A调试项目B的情况下创建两个项目吗?

您可以从相同的源代码创建两个JAR:

生产应用 手动测试应用程序 上面列表中的手动测试应用程序2可以使用将所需JAR附加到类路径的Gradle任务创建:

task createManualTestingApp(type: JavaExec) {
    classpath += "/$HOME/my/custom/testerLibrary.jar"
    // ...other configuration...
}
如果您希望创建生产JAR和手动测试JAR的任务是相同的,除了手动测试JAR包含扩展类路径之外,这可以通过创建两个扩展相同类型的任务来实现:


观点:从测试的角度来看,手动测试应用程序中包含一个JAR而不是生产应用程序中包含一个JAR并不理想。这导致测试应用程序与生产应用程序不同。例如,如果该JAR包含某些内容或更改了应用程序的行为,导致手动测试正常工作,但生产应用程序由于缺少该JAR而失败,该怎么办?根据JAR的性质,这可能是良性的,但是在决定测试和生产应用程序将不同的时候考虑是重要的。

也许这里的测试是错误的。我有两个独立的项目,碰巧在非生产应用程序中有一个有用的实用程序。我用来手动调试的代码从未离开过我的计算机。这根本不是经典CS意义上的测试。如果我将实用程序库包含在生产应用程序的build.gradle中的任何位置,那么除了我的以外,世界上所有的计算机都会失败。我有一个单独的目录用于自动测试的单元测试。这是一个使用专门任务的好例子。底部的意见只是额外的信息,但不管在什么情况下,多任务方法都应该解决您的问题。