gpt4 book ai didi

java - Maven - 如何将单个资源文件放置在与其他资源文件不同的位置?

转载 作者:行者123 更新时间:2023-12-02 03:55:55 27 4
gpt4 key购买 nike

所以我创建了一个 Windows 批处理文件,我想将其包含在使用 Maven 的构建中。我将其放在 src/main/resources 文件夹中。当我执行 mvn clean install 时,我的资源最终位于与 jar 文件位于同一目录中的名为 conf 的文件夹中。

基本上,我希望将 Windows 批处理文件放在与我的 jar 相同的目录中,并将其他资源文件放在 conf 文件夹中。

+ conf/
... my resource files
- myjar.jar
- myBatchFile.bat

这里是执行此操作的 Maven 插件的片段:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/conf</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.csv</include>

<!-- include my batch file -->
<include>**/*.bat</include>

</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

正如预期的那样,我的批处理文件进入了conf文件夹。

问题:有没有办法让批处理文件位于我的 jar 旁边,而所有其他资源文件都位于 conf 内?

最佳答案

尝试将您的配置更改为以下内容:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/conf</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.csv</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-batch</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<!-- include my batch file -->
<include>**/*.bat</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

我们基本上是在同一阶段添加同一插件的进一步执行,它将处理特定的批处理文件及其副本,同时从先前的执行中删除批处理包含。

关于java - Maven - 如何将单个资源文件放置在与其他资源文件不同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35447762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com