Java 如何让gradle下载库
我正在学习Java“艰难之路”,意思是没有任何IDE。相反,我依靠gradle和我的文本编辑器。A此时,我的项目如下所示:Java 如何让gradle下载库,java,gradle,Java,Gradle,我正在学习Java“艰难之路”,意思是没有任何IDE。相反,我依靠gradle和我的文本编辑器。A此时,我的项目如下所示: ├── build.gradle └── src ├── main │ └── java │ └── CliOptionsTryout.java build.gradle的内容: apply plugin: 'java' repositories { jcenter() } dependencies { comp
├── build.gradle
└── src
├── main
│ └── java
│ └── CliOptionsTryout.java
build.gradle的内容:
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
compile 'commons-cli:commons-cli:1.4'
compile 'org.slf4j:slf4j-api:1.7.22'
testCompile 'junit:junit:4.12'
}
ClioptionsTryyout.java的内容:
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
public class CliOptionsTryout {
public static void main(String[] args) {
Options options = new Options(); // <=== FAILED HERE
options.addOption("h", "help", false, "show help.");
options.addOption("v", "var", true, "Here you can set parameter .");
}
}
我知道原因是它找不到commons cli库。因此,问题是,我如何告诉gradle下载并安装这个库?因为您可以在堆栈跟踪中读取,Java可执行文件找不到类
org.apache.commons.cli.Options
。此类是您正在使用的依赖项的一部分
执行java clioptions试用时,java可执行文件将查找二进制文件(.class文件在当前文件夹中)。您会收到一个错误,因为Gradle没有获取clioptions试用.class
文件所在文件夹中的依赖项(JAR文件)
如果希望成功运行类,则需要告诉Java可执行文件在何处找到包含所使用库的.class
文件的JAR文件
默认情况下,Gradle获取$HOME/.Gradle/..
中的所有JAR依赖项。缺少的依赖项是1.4版中的Apache commons CLI。下面是定位精确路径的命令:
find $HOME/.gradle -name "commons-cli-1.4.jar"
例如,我得到以下信息:
$HOME/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.4/c51c00206bb913cd8612b24abd9fa98ae89719b1/commons-cli-1.4.jar
获得依赖项JAR文件的路径后,可以使用java
命令和-cp
选项来扩展类路径。类路径用于告诉在哪里可以找到第三方二进制文件:
java -cp $HOME/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.4/c51c00206bb913cd8612b24abd9fa98ae89719b1/commons-cli-1.4.jar:. CliOptionsTryout
在现实世界中,我建议为您的应用程序生成一个JAR文件(包括所有依赖项),并使用java-JAR
直接执行该文件。如果你有兴趣学习如何做,请看一下 正如您可以在堆栈跟踪中读取的那样,Java可执行文件找不到类org.apache.commons.cli.Options
。此类是您正在使用的依赖项的一部分
执行java clioptions试用时,java可执行文件将查找二进制文件(.class文件在当前文件夹中)。您会收到一个错误,因为Gradle没有获取clioptions试用.class
文件所在文件夹中的依赖项(JAR文件)
如果希望成功运行类,则需要告诉Java可执行文件在何处找到包含所使用库的.class
文件的JAR文件
默认情况下,Gradle获取$HOME/.Gradle/..
中的所有JAR依赖项。缺少的依赖项是1.4版中的Apache commons CLI。下面是定位精确路径的命令:
find $HOME/.gradle -name "commons-cli-1.4.jar"
例如,我得到以下信息:
$HOME/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.4/c51c00206bb913cd8612b24abd9fa98ae89719b1/commons-cli-1.4.jar
获得依赖项JAR文件的路径后,可以使用java
命令和-cp
选项来扩展类路径。类路径用于告诉在哪里可以找到第三方二进制文件:
java -cp $HOME/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.4/c51c00206bb913cd8612b24abd9fa98ae89719b1/commons-cli-1.4.jar:. CliOptionsTryout
在现实世界中,我建议为您的应用程序生成一个JAR文件(包括所有依赖项),并使用java-JAR
直接执行该文件。如果你有兴趣学习如何做,请看一下 使用应用程序插件,让gradle为您生成一个应用程序(包括所有必要的依赖项、启动脚本等)。我喜欢@JBNizet的建议,它对我很有用。谢谢。使用应用程序插件,让gradle为您生成一个应用程序(包括所有必要的依赖项、启动脚本等)。我喜欢@JBNizet的建议,它对我很有用。非常感谢。