我是Maven的新手,希望通过自动将多个文件和文件夹部署到生产环境来自动执行一些构建步骤:
my-app-0.7.0-jar-with-dependencies.jar (main application file)
conf.properties (configuration file that can be edited on the fly)
files_folder (folder that contains html, css etc. that can be edited on the fly)
我的项目结构如下:
src
main
java
resources (contains resources that should be included in the .jar)
conf.properties.jar
files_folder
我首先在<resources>
pom.xml
元素
<resources>
<resource>
<directory>.</directory>
<includes>
<include>conf.properties</include>
<include>files_folder/**/*.*</include>
</includes>
<targetPath>..</targetPath>
</resource>
</resources>
这会将conf.properties
和files_folder
移动到target
目录,这很好(我可以复制.jar,conf.properties和files_folder并运行它们。)
但是,这些文件不会移动到C:\Users\my_name\.m2\...
或外部存储库中的本地存储库(在安装和部署阶段)。
我的想法是应该将这些资源移到存储库中,因为:
所以主要问题是:
答案 0 :(得分:0)
与其他回复一样,我建议您需要考虑持续集成方法。我以前和Jenkins一起工作的经验很丰富。它是免费的,并具有很多功能。它还有一个大型社区,开发了一系列插件:
https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
根据您正在部署的内容以及您希望如何部署它,一些可能对您的流程有帮助的插件是:
答案 1 :(得分:0)
您可以将这些文件保存在src / main / resources / META-INF中,而不是将这些文件保存在类路径中。因此,当您使用maven构建项目时,如果您选择了包装作为耳朵
<artifactId>ProjectName</artifactId>
<version>Version</version>
<packaging>ear</packaging>
然后所有这些文件都将打包在jar中,并将在你的maven存储库中提供
答案 2 :(得分:0)
Maven是一个构建工具,而不是一个部署工具。对于像Test,Q&amp; A或Prod这样的环境的部署,其他工具更适合像Chef,Puppet或者可能只是简单的shell脚本等。