2017-06-29 9 views
0

のpom.xmlがスニペット:どのようなclass.getResource(...)。getFile()から返されますか?

<modelVersion>4.0.0</modelVersion> 
<groupId>com.xyz</groupId> 
<artifactId>xyzservice</artifactId> 
<version>2.2.2-SNAPSHOT</version> 
<packaging>war</packaging> 

結果ファイル:xyzservice.war:xyzservice-2.2.2-SNAPSHOT.war

を、私はそれを名前を変更し、webappsディレクトリにwarファイルをコピーしました。その後、Tomcatを抽出した後、このコード:

AImpl.class.getResource("/abc/d.pdf").getFile(); 

は私を与えた:/usr/local/tomcat-8.0.36-8082/webapps/xyzservice-2.2.2-SNAPSHOT/WEB-INF/classes/abc/d.pdfが、私は、バージョン情報のない/usr/local/tomcat-8.0.36-8082/webapps/xyzservice/WEB-INF/classes/abc/d.pdfを期待しています。誰も私に何が間違って行ったか説明することができます&どのように修正するには?前もって感謝します。

+0

"warファイルをwebappsディレクトリにコピーし、xyzservice.warという名前に変更しました。おそらくローカルファイルシステム上で/usr/local/tomcat-8.0.36-8082/webapps/xyzserviceとして抽出されているはずですそれで、あなたが得ているfil。それは私にとって完全に合理的だと思われます... –

+0

抽出は予想どおりですが、AImpl.class.getResource()はこれを反映していません。元のディレクトリ構造を探しています。すべての修正? – Charlie

+0

ああ、私は見る - 申し訳ありませんが、どちらの方法でそれが誤解された。チェックするだけで、実際にあなたが期待しているファイルとして抽出されていることは確かですか? –

答えて

1

ウェブアプリケーションがtomcat webappsディレクトリ内にあるxyzservice-2.2.2-SNAPSHOTという名前で抽出されていることは明らかです。 warファイルの名前を変更しても構いませんが、その中のディレクトリは変更しないでください。

バージョンがない場合は、名前をxyzserviceに変更してもう一度お試しください。あなたがビルド時に削除するバージョンをご希望の場合

、以下の記事を参照してビルドであなたののmaven-戦争 - プラグイン設定セクションタグ内のバージョンなしwarNameタグを含めてください。

how to Build project with maven without version

+0

これは、mavenが名前を変更したwarファイルではなく、ディレクトリ構造の元のwarファイルの名前でwarファイルをパッケージ化したことを意味しますか?展開前に戦争の中でディレクトリ名を変更する必要がある場合、それは誤っています。どんな良いアイデア? – Charlie

+0

ありがとう、それは私が欲しいものです。 – Charlie

+0

誰かが私の質問に投票したので、私はあなたの答えを投票できませんでした。 – Charlie

1

初期の戦争のファイルを見る - それは助けにはなりませんので、ちょうど.warファイルの名前を変更artifactID-version.warとして名前が付けられます。バージョンをpom.xmlに調整する必要があります。

+0

本当の質問は、ここでどのようにパッケージ化されているのですか?AImpl.class.getResource(...)。getFile()&Tomcatは一緒に働いています – Charlie

+0

多分、それは明らかです。私が言ったことを試しましたか? –

+0

私は "pom.xmlのバージョンを調整する"ことができませんでした。私は答え/コメント/リンクを読んでいましたが、バージョン番号は@beginnerの答えで取り除くことができます。あなたは "本当の質問..."に対するコメントを持っていますか? – Charlie

関連する問題