如何在 EAR 中打包属性文件和 JAR?

Posted

技术标签:

【中文标题】如何在 EAR 中打包属性文件和 JAR?【英文标题】:How to package a properties file and JAR inside an EAR? 【发布时间】:2014-03-12 16:22:06 【问题描述】:

我制作了一个访问 Web 服务、获取数据并更新属性文件一次的 Java 应用程序,以完成它的所有操作(该应用程序在此调用后不会访问 Web 服务,并将其保存在属性文件)。已经计划好这个应用程序必须部署在Websphere Application Server (WAS) 中,所以我想把JAR 文件和属性文件放在一个EAR 文件中,假设部署时,JAR 和属性文件将是在服务器的同一路径内。

有什么方法可以打包 EAR,让 JAR 和属性文件放在一起吗?

【问题讨论】:

【参考方案1】:

这个是可以实现的,我这里没看出有什么问题。执行以下操作:

properties文件打包到jar中,然后将jar打包到ear中。

使用 ant 你可以使用以下命令构建 jar:

<target name="jarx.jar">
    <jar destfile="$dist.dir/jarx.jar">
        <fileset dir="$classes.dir">
            <include name="**/*.*"/>
        </fileset>
    </jar>
</target>

以后如何访问属性文件?

如果你想稍后从任何类 ClassX 访问属性文件,你可以简单地写

InputStream is = ClassX.getResourceAsStream('/abc.properties');

编辑:

问题的第二部分已经回答 here 。但我不建议这样做,因为如果没有服务器启动,这些更改可能不会立即反映或加载。在这一点上不确定。

另外,如果罐子是密封的,您需要评估什么?

【讨论】:

但是,你能在罐子里写一次属性吗?因为如前所述,我在运行时重写了一些属性。 在我的回答中查看编辑

以上是关于如何在 EAR 中打包属性文件和 JAR?的主要内容,如果未能解决你的问题,请参考以下文章

是否必须在EAR中的WAR中重复使用常见的JAR?

关于war包 jar包 ear包 及打包方法

如何在GlassFish上部署基于JDO的EAR文件?

在 JavaEE 6 WAR 与 EAR 中打包 EJB

如何从打包在war文件中的jar文件中加载资源? [复制]

关于war包 jar包 ear包 及打包方法