我目前正在开发一个基于maven的应用程序。我想制作一个bat文件来运行final jar。我写了一个调用java -jar的bat文件…并将其放入src/main/resources/runners文件夹中。我也不想把这个文件添加到jar中,所以我把它从资源插件中排除了。问题是bat没有被复制。我已经从他们的网站上复制了maven-resources-plugin配置,它不起作用。但是,我只想在调用jar:jar时复制bat。应用程序在这里托管,因此您可以在那里看到详细信息。我尝试这样绑定复制:
<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阶段和目标,然后在官方文档中(从它什么都不理解)?
您可以使用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。