Maven 无法将unix可执行文件传输到目标文件夹
我可以使用maven资源插件成功地将资源文件从源复制到目标。但复制unix可执行文件sh文件时会出现问题。它是我的资源下的unix可执行文件,双击后成功执行。但是,在执行mvn clean包之后,它将作为文本文件而不是unix可执行文件传输。我不明白背后的主要原因。我试图将其作为unix可执行文件传输,就像在目标文件夹的主项目中一样,但我找不到一种方法。我也不确定问题是与maven资源插件有关还是与文件本身有关。您可以在下面看到文件的内容和我的插件配置。谢谢你的帮助Maven 无法将unix可执行文件传输到目标文件夹,maven,unix,maven-plugin,maven-resources-plugin,Maven,Unix,Maven Plugin,Maven Resources Plugin,我可以使用maven资源插件成功地将资源文件从源复制到目标。但复制unix可执行文件sh文件时会出现问题。它是我的资源下的unix可执行文件,双击后成功执行。但是,在执行mvn clean包之后,它将作为文本文件而不是unix可执行文件传输。我不明白背后的主要原因。我试图将其作为unix可执行文件传输,就像在目标文件夹的主项目中一样,但我找不到一种方法。我也不确定问题是与maven资源插件有关还是与文件本身有关。您可以在下面看到文件的内容和我的插件配置。谢谢你的帮助 <pl
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>${resource.delimiter}</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
<executions>
<execution>
<id>copy-resources</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<!-- Include filtered resources and Dockerfile
for docker and packaging installation tests -->
<resource>
<directory>${project.basedir}/src/main/filter</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<include>logback.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
您可以执行以下操作,只需为您的目录配置筛选: 在rpm maven插件中,您可以使用以下内容:
<mapping>
<directory>/xyz/sbin/</directory>
<filemode>755</filemode>
<username>user</username>
<groupname>group</groupname>
<sources>
<source>
<location>${project.build.directory}/xyz.sh</location>
</source>
</sources>
</mapping>
${project.build.directory}将是目标目录 你为什么要用Maven复制一个httpd启动文件shell?hello@khmarbaise是的,在复制文件后,我使用rpm Maven插件从目标文件夹获取资源并创建rpm文件。不幸的是,插件能够从目标文件夹复制文件,并创建了rpm文件。但正如rpm文件内容中所预期的那样,存在一个sh文件而不是unix executableshell文件。您必须在rpm maven插件配置中正确设置可执行标志才能正确处理该问题。除此之外,任务的配置看起来很复杂…@khmarbaise,因此您认为与maven资源插件无关,因为rpm maven插件中应该给出可执行标志。你知道那面旗帜吗?我不相信。我知道你必须这样做,你也可以使配置比maven resources插件的长配置更容易。这完美地解决了我的问题。我不知道问题来自权利。谢谢你@khmarbaise
<resources>
<resource>
<directory>src/main/filter</directory>
<filtering>true</filtering>
</resource>
...
</resources>
<mapping>
<directory>/xyz/sbin/</directory>
<filemode>755</filemode>
<username>user</username>
<groupname>group</groupname>
<sources>
<source>
<location>${project.build.directory}/xyz.sh</location>
</source>
</sources>
</mapping>