为了账号安全,请及时绑定邮箱和手机立即绑定

使用maven创建带有xml文件的jar文件

使用maven创建带有xml文件的jar文件

眼眸繁星 2021-10-20 11:12:47
所以我一直在尝试将项目部署为 jar,它需要以这种方式读取文件:private static final String DEFAULT_PATH = "org/some/thing/cool/necesaryFile.xml";public void readSomeFile() {    InputStream is = null;    try {        ClassLoader classLoader = SomeOtherClass.class.getClassLoader();        is = classLoader.getResourceAsStream(DEFAULT_PATH);    }    catch (IOException e) {        e.printStackTrace();    }    finally {        safeClose(is);    }}public static void safeClose(InputStream is) {    if (is != null) {        try {            is.close();        } catch (IOException e) {            e.printStackTrace();        }    }}我已经在 Eclipse 中测试过它,它工作正常!调试我看到了路径,完全没有问题!当我使用 maven 部署 jar 时,它没有显示任何错误,但是当我尝试使用 jar 作为依赖项运行项目 A 时,我得到java.lang.IllegalArgumentException: InputStream cannot be null并检查项目 A 中的 jar,我找不到部署之前存在的necesaryFile.xml。xml文件的路径是这样的:C:/coolUser/workspace/src/main/java/org/some/thing/cool/necesaryFile.xml所以它在带有一些java类的酷包中。所以我的问题是,有没有办法告诉 maven 在部署 jar 时不要删除文件(如果那是正在发生的事情)?移动那个 xml 文件的位置不是一个选项(或者至少我希望不要这样做)Maven 命令:mvn clean deploy -U -Dmaven.test.skip=true -DaltDeploymentRepository=coolRepo::default::${REPO_LOCATION}
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

将 .xml 文件放在 src/main/resources 中,而不是放在 src/main/java 中。推荐的方法是将它们保留在资源中。如果您仍然希望将它们与 java 类一起保留,那么您必须明确告诉插件(您在 pom 中使用它来构建 jar)包含 xml 文件。


查看完整回答
反对 回复 2021-10-20
  • 1 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信