2011-07-18 8 views
5

すべてのクラスを単一の.jarにパッケージ化し、lib/folderにそのjarを含む.warファイルを作成する、maven-war-pluginにはarchiveClassesオプションがあります。Maven warプラグイン:アーカイブリソースなしのarchiveClasses

同じことをする必要がありますが、リソースファイルはクラスディレクトリに残しておく必要があります。そのため、クラスパスからはアクセスできますが、変更は簡単です。

これを行う最も簡単な方法は何ですか?

答えて

0

これらのリソースがどこにあるかを指定できるだけです。これは通常、リソースはsrc /メイン/リソースに見えますが、あなたが試みることができるJavaのソースツリーでそれらを必要とする場合:

+0

いいえ。それらはsrc/main/resourcesにありますが、私はそれらを.warファイル内のclasses /ディレクトリにパッケージ化し、Java .classファイルはlib/directoryの.jarの中に入れる必要があります。 – weekens

4

たぶん、あなたは プラグイン設定にリソースとして、リソースフォルダを設定しようとすることができます。

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
     <webResources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <targetPath>WEB-INF/classes</targetPath> 
       <filtering>true</filtering> 
      </resource> 
     </webResources> 
    </configuration> 
</plugin> 
+0

これは動作しますが、リソースもjarファイルに複製されます。 – kolobok

0
あなたが問題を解決するために、次のように行うことができます

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <warName>${project.war.name}</warName> 
     <warSourceExcludes>**/*.class</warSourceExcludes> 
     <archiveClasses>true</archiveClasses> 
    </configuration> 
</plugin> 
2

1行の答え:archiveClassesフラグを使用して作成したjarファイルからリソースを除外するmaven-war-pluginで提供オプションはありません。

この問題の可能性と最も簡単な回避策はsrc/main/java/webapp/WEB-INF/classesディレクトリにsrc/main/java/resourcesディレクトリの下に存在するファイルを移動することです。

関連する問題