Java 如何创建一个maven程序集,其中包含不在jar中的shell脚本和属性文件?
我正在尝试使用Maven构建一个独立的应用程序 使用中描述的汇编插件 这将创建包含Java 如何创建一个maven程序集,其中包含不在jar中的shell脚本和属性文件?,java,maven,build,Java,Maven,Build,我正在尝试使用Maven构建一个独立的应用程序 使用中描述的汇编插件 这将创建包含 widget-1.0 widget-1.0/lib/widget.jar widget-1.0/lib/3rdpartyjar1.jar widget-1.0/lib/3rdpartyjar2.jar 但在我的src树中,我有: src/main/bin/widget.sh 而这并没有进入最终的发行拉链,我希望它在这里 widget-1.0/widget.sh 在我的src树中,我还有一个属性文件 s
widget-1.0
widget-1.0/lib/widget.jar
widget-1.0/lib/3rdpartyjar1.jar
widget-1.0/lib/3rdpartyjar2.jar
但在我的src树中,我有:
src/main/bin/widget.sh
而这并没有进入最终的发行拉链,我希望它在这里
widget-1.0/widget.sh
在我的src树中,我还有一个属性文件
src/main/properties/widget.properties
目前正在进入
widget-1.0/lib/widget.jar
但因为我希望它是可编辑的,所以我希望它在
widget-1.0/widget.properties
有可能在maven中实现这一点吗
编辑
在博客中使用信息的工作如下:
<?xml version="1.0" encoding="UTF-8"?>
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>distribution</id>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
<scope>runtime</scope>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>widget.sh</include>
<include>widget.properties</include>
</includes>
</fileSet>
</fileSets>
</assembly>
分布
拉链
运行时
解放党
假的
${project.build.scriptSourceDirectory}
widget.sh
widget.properties
不过,还有一个小问题,就是在任何地方都找不到maven标准文件夹变量列表,即属性文件夹是否有与${project.build.scriptSourceDirectory}等效的我发现这是一个很好的教程
此外,我认为您放置文件的文件夹的名称是相关的。Maven处理src/main/java
中的文件显然与处理src/main/resources
中的文件不同。我不是100%确定,但是这个文件夹的名称可能意味着文件是否在jar中结束
是Maven目录名属性的列表。谢谢,这看起来是一个很棒的博客,我将仔细阅读,看看它是否解决了我的问题。实际上,我的问题是不正确的,我将widget.sh存储在bin文件夹中,修改了问题以记录此内容。@PaulTaylor我编辑了我的答案,以反映您在问题中的编辑。祝你好运@保尔:太酷了!顺便说一句,我还为您找到了一个目录变量列表,以回答您问题的最后一部分;t似乎是一个属性变量,但find可以与${basedir}一起使用,即${basedir}/src/main/properties@DeerWomb谢谢你让我知道这件事。我设法找到了我链接到的原始页面的新位置,尽管您的页面确实包含相同的信息。我相应地更新了我的答案。