我为项目http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
使用标准的maven目录结构然而,这是有问题的,因为配置文件将在jar文件中。有关从预定义位置读取配置文件为How to get the path of a running JAR file?
的讨论但是我试图在没有任何配置文件的情况下打包我的jar文件,并使目录结构看起来与我们下载的任何其他开源项目类似
project|
--lib
|
--conf
|
--docs
|
--src
我不想做任何源代码更改(例如:我的所有配置文件都在maven开发的源路径中,我只是直接读取文件而不预先添加路径);如果我必须在源代码中更改配置文件的路径,我该怎么做才能使路径在开发和生产中都能正常工作 我的问题
1)我怎样才能拥有当前的“开发”目录结构,但是我的“生产”版本目录看起来与任何apache(比如)项目类似
2)对于每个版本,我应该在pom.xml中做些什么更改,以便将版本号附加到jar并递增
我不想做任何源代码/ java代码更改(例如:我的所有配置文件都在maven开发的源路径中,我只是直接读取文件而不预先添加路径);如果我必须在源代码中更改配置文件的路径,我该怎么做才能使路径在开发和生产中都能正常工作
(我正在使用Maven和Eclipse)
答案 0 :(得分:1)
在我的项目中,我使用maven assembly plugin以可再分发的方式打包应用程序:
src/main/java
和src/main/resources
下的所有内容都打包在主jar中(标准行为)。
然后使用程序集插件,我创建一个包含3个文件夹的zip:
/lib
:包含主jar +所有依赖项/bin
:包含src/main/scripts
maven源文件夹(启动shell脚本)中的其他文件/etc
(或/conf
):包含src/main/config
maven源文件夹(配置文件)中的其他文件我发现此设置非常方便,因为它非常接近主jar中的初始maven standard layout(src/main/java
+ src/main/resources
以及其他appart文件夹),仍然适应我的项目
答案 1 :(得分:0)
您可以在Maven Resource Plugin中提及这些资源目录来使用现有资源。
将以下代码添加到pom.xml的构建(标记)部分
<resources>
<resource>
<directory>[your folder here]</directory>
</resource>
</resources>
你可以在这里添加几个非maven标准资源(其他任何src / main / resources)。
答案 2 :(得分:0)
我想根据我挖掘的内容分享更多提示(@superbob提供了很好的解释)。 这说起来容易做起来....
我想创建jar(可执行文件)并将此jar文件复制到zip(以及其他一些目录以便发布到生产中)...如果您可以查看现有的pom文件而不是摆弄现有的pom,这很容易
在这里查看现有项目(pom.xml)http://www.petrikainulainen.net/programming/tips-and-tricks/creating-a-runnable-binary-distribution-with-maven-assembly-plugin/
在我的情况下,我有多个pom文件,它为像我这样的新手增加了另一层复杂性..在这里查看maven程序集插件的多模块示例http://maven.apache.org/plugins/maven-assembly-plugin/examples/multimodule/index.html
最后但并非最不重要的是,运行以下命令以确保已创建程序集
mvn clean install package assembly:single