【问题标题】:Shell script to generate war file recursively for multiple projects为多个项目递归生成war文件的Shell脚本
【发布时间】:2018-11-21 09:08:40
【问题描述】:

我想为同一个文件夹中的多个java项目生成war文件,文件夹名称是各个war文件的名称。

Folder Structure:
/home/admin/wars have files a , b , c ,d ,e 

I want to create war files a.war, b.war , c.war ,d.war , e.war

使用单个 shell 命令。

我知道创建单个war文件的命令:

jar -cvf /home/admin/wars/a.war *

如何为同一文件夹中的多个项目执行此操作,文件夹名称为war name。?

【问题讨论】:

  • 您是否考虑过使用构建工具构建您的项目?像 Maven 一样?
  • 我正在通过 shell 脚本在 jenkins 上执行此操作。

标签: java linux shell war


【解决方案1】:

你使用 Jenkins 真是太棒了。

无论如何,您应该使用像MavenAnt 这样的构建工具,Jenkins 完全支持这些工具。

例如,检查这个Jenkins documentation

根据您的 cmets 中的要求,您可以获得更多文档:

【讨论】:

  • 我确实尝试过使用 jenkins 插件,但我无法找到合适的参考来帮助解决这种情况。你对此有什么想法吗?
  • 是的,您可以获得更多文档herehere
  • @RahulAnand 在 Stackoverflow 上,您可以将 up-vote 给人们有用的答案以感谢他们,并选择任何一个答案作为correct answer
【解决方案2】:

这个呢:

cd /home/admin/wars
find ./ -type f -maxdepth 1 -exec jar -cvf {}.war {} \;

// maxdepth makes sure you don't go into subdirectories

(我没有测试这个解决方案)

【讨论】:

  • 谢谢。它给出的错误:javac:无效标志:-cvf
  • @RahulAnand 对不起,我弄错了,应该是jar 而不是javac,我更正了我的答案。
  • 谢谢,它确实运行没有错误,但没有创建战争文件。
  • 你说得对:我不应该将目录引用放在输出文件中。我的答案已再次更新,现在它似乎可以工作(至少在我的系统上)。
猜你喜欢
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2015-03-01
  • 2016-07-06
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 2011-09-20
相关资源
最近更新 更多