我正在学习Java“硬的方法”,意思是没有任何IDE。相反,我依靠gradle和我的文本编辑器。 A这一刻,我的项目是这样的:如何获取gradle以下载库
├── 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'
}
内容CliOptionsTryout.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 .");
}
}
与gradle build
成功地构建了项目,但是当我执行java CliOptionsTryout -v 100
时,出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/Options
at CliOptionsTryout.main(CliOptionsTryout.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.Options
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
我知道原因是找不到commons-cli库。所以,问题是,我如何告诉gradle下载并安装这个库?
使用应用程序插件并让gradle为您生成一个应用程序(具有所有必需的依赖项,启动脚本等)。 https://docs.gradle.org/current/userguide/application_plugin.html –
我喜欢@ JBNizet的建议,它适用于我。谢谢。 –