如何通过执行shell将参数传递给Jenkins作业
问题描述:
- 我需要在入口点类之一中拥有主类吗?
- 我尝试添加主类,但是当我试图通过它的说法主类无法加载或找不到。
这里是我使用的命令:如何通过执行shell将参数传递给Jenkins作业
jar -xvf jarname.jar
java -cp /path/filename.class $JOB_URL $USER $PASSWORD
路径名称是文件名,其中入口点和具有main()
方法。
答
1)我是否需要在入口点类中的一个主类?
是的。并通过参数不应该要求解压缩JAR档案:详见“How do I pass parameters to a jar file at the time of execution?”
java -jar jarname.jar param1 param2
但是,这需要一个MANIFEST
file inside the jar which reference the main class。
Main-Class: MyPackage.MyClass
或者你可以使用 - 他“jar e
”选项(如果您的罐子没有Manifest.txt
文件)“”
如果入口点的类名是在一个包就可以使用(点)字符作为分隔符。
例如,如果Main.class
是在一个名为foo
包的入口点可以通过以下方式来指定:
jar cfe Main.jar foo.Main foo/Main.class
在这两种情况下,你就不必解压罐子。
我们需要手动添加Manifest.mf吗? –
@RockyHai是的,如https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html所述。但是,如答案的最后部分所述,您还可以使用'jar cfe'命令测试您的jar,而不假设存在'Manifest'。 – VonC
目前我没有添加Manifest.mf,因此我可以使用jar cfe jarname.jar path.entryclass $ param。 –