我对我的项目http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html使用标准maven目录结构
但是,这是有问题的,因为配置文件将位于jar文件中。对于如何将配置文件从预定义的位置读取为如何获得正在运行的JAR文件的路径?进行了一些讨论。
但是,我试图在jar文件中没有任何配置文件的情况下进行打包,并使目录结构看起来类似于我们下载的任何其他开源项目。
project|
--lib
|
--conf
|
--docs
|
--src我不喜欢做任何源代码更改(例如:我所有的配置文件都在用于maven开发的源代码路径中,我只是直接读取文件,而没有在路径前面加上);如果我必须将路径更改为源代码中的配置文件,我应该如何使该路径在开发和生产中都正常工作?
1)如何才能保持当前的“开发”目录结构,但我的“产品”发布目录看起来与任何apache(比方说)项目类似。
2)对于每个版本,我应该在pom.xml中做哪些更改,以便将版本号附加到jar并递增
我不喜欢做任何源代码/java代码的更改(例如:我的所有配置文件都在用于maven开发的源代码路径中,我只是直接读取这些文件,而没有在路径前面加上路径);如果我必须更改源代码中的配置文件路径,我应该如何使该路径在开发和生产中都能正常工作?
(我正在使用Maven和Eclipse)
发布于 2014-06-03 23:27:07
我想分享更多的提示,根据我挖掘出来的(@superbob给出了很好的解释)。说起来容易做起来难.
我希望创建jar (首先是可执行的),并将这个jar文件复制到zip中(以及很少有其他目录发布到生产中),如果您可以查看现有的pom文件,而不是修改现有的pom文件,那么...it是很容易的。
在这里查找现有项目(pom.xml) http://www.petrikainulainen.net/programming/tips-and-tricks/creating-a-runnable-binary-distribution-with-maven-assembly-plugin/
在我的例子中,我有多个pom文件,它为菜鸟增加了另一层复杂性,比如me..look这里是使用maven程序集插件http://maven.apache.org/plugins/maven-assembly-plugin/examples/multimodule/index.html的多模块示例。
最后但并非最不重要的一点是,运行以下命令以确保程序集被创建
mvn clean install package assembly:single发布于 2014-05-31 08:48:38
在我的项目中,我使用maven组装插件以可再发行的方式打包应用程序:
src/main/java和src/main/resources下的所有内容都打包在主jar中(标准行为)。
然后使用程序集插件,创建一个包含3个文件夹的zip:
/lib:包含主jar +所有依赖项/bin:包含来自src/main/scripts maven源文件夹的附加文件(启动src/main/scripts脚本)/etc (或/conf):包含来自src/main/config maven源目录(配置文件)的附加文件我发现这个设置非常方便,因为它非常接近最初的maven标准布局 (主jar中的src/main/java+ src/main/resources和其他附带的文件夹),仍然适合我的项目。
发布于 2014-05-31 08:36:52
您可以通过在Maven资源插件中提及这些资源目录来使用现有资源。
添加以下代码以构建pom.xml的(标记)部分
<resources>
<resource>
<directory>[your folder here]</directory>
</resource>
</resources>您可以在这里添加几个非maven标准资源(任何其他src/main/resources )。
https://stackoverflow.com/questions/23962556
复制相似问题