Java 如何创建一个maven程序集,其中包含不在jar中的shell脚本和属性文件?

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

我正在尝试使用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树中,我还有一个属性文件

src/main/properties/widget.properties
目前正在进入

widget-1.0/lib/widget.jar
但因为我希望它是可编辑的,所以我希望它在

widget-1.0/widget.properties
有可能在maven中实现这一点吗

编辑 在博客中使用信息的工作如下:

  • 将bin文件夹重命名为scripts文件夹,因为这是标准的Maven名称
  • 已将widget.properties移动到脚本文件夹中
  • 修改了my assembly.xml以包含文件集
  • 下面是新的xml

    <?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谢谢你让我知道这件事。我设法找到了我链接到的原始页面的新位置,尽管您的页面确实包含相同的信息。我相应地更新了我的答案。