所以我一直在嘗試將項(xiàng)目部署為 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(); } }}我已經(jīng)在 Eclipse 中測(cè)試過它,它工作正常!調(diào)試我看到了路徑,完全沒有問題!當(dāng)我使用 maven 部署 jar 時(shí),它沒有顯示任何錯(cuò)誤,但是當(dāng)我嘗試使用 jar 作為依賴項(xiàng)運(yùn)行項(xiàng)目 A 時(shí),我得到j(luò)ava.lang.IllegalArgumentException: InputStream cannot be null并檢查項(xiàng)目 A 中的 jar,我找不到部署之前存在的necesaryFile.xml。xml文件的路徑是這樣的:C:/coolUser/workspace/src/main/java/org/some/thing/cool/necesaryFile.xml所以它在帶有一些java類的酷包中。所以我的問題是,有沒有辦法告訴 maven 在部署 jar 時(shí)不要?jiǎng)h除文件(如果那是正在發(fā)生的事情)?移動(dòng)那個(gè) xml 文件的位置不是一個(gè)選項(xiàng)(或者至少我希望不要這樣做)Maven 命令:mvn clean deploy -U -Dmaven.test.skip=true -DaltDeploymentRepository=coolRepo::default::${REPO_LOCATION}
1 回答

www說
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
將 .xml 文件放在 src/main/resources 中,而不是放在 src/main/java 中。推薦的方法是將它們保留在資源中。如果您仍然希望將它們與 java 類一起保留,那么您必須明確告訴插件(您在 pom 中使用它來構(gòu)建 jar)包含 xml 文件。
添加回答
舉報(bào)
0/150
提交
取消