我目前正在开发基于maven的应用程序。我想制作一个bat文件来运行最终的jar。我写了一个bat文件,调用java -jar ...并将其放入src / main / resources / runners文件夹中。我也不想将此文件添加到jar中,因此我将其从资源插件中排除。问题是没有复制蝙蝠。我已经从他们的site中复制了maven-resources-plugin配置,它不起作用。但是,我只想在调用jar:jar时复制bat。 应用程序已托管here,因此您可以在此处查看详细信息。我试图绑定复制:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target</outputDirectory>
<resources>
<resource>
<directory>src/main/runners</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
还尝试了<phase>package</phase>
和<goal>jar</goal>
(以及<goal>jar:jar</goal>
)。没效果。
顺便说一下:在哪里可以阅读更详细的maven阶段和目标,然后在官方文档中(从中理解没有)?
答案 0 :(得分:1)
您可以使用pre-integration-test
阶段,只有在您的jar由构建成功创建时才会运行。然后,您需要通过integration-test
,verify
,install
或deploy
运行构建,以确保copy-resources
运行。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-builders</id>
<!-- here the phase you need -->
<phase>pre-integration-test</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/runners</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
您可以在http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html了解有关生命周期的更多信息。