誰かがmaven-war-pluginの構成を手伝ってくれませんか?
セキュリティ上の理由から、すべてのユーザーグループに1つだけをデプロイするのではなく、2つの異なるユーザーグループの2つのサーバーで2つの非常によく似たWebアプリを実行したいと思います。したがって、私はそれらの間で可能な限り多くのコードを共有したいと思います。
私は、開発のためにスタンドアロンで実行し、そのアイテムのほとんどを2つの別々のWebプロジェクトで再利用できる1つの戦争を作成することを意図していました。たとえば、Spring構成ファイル(applicationContext-XX.xml)、jspx、css、...、およびJavaコードを再利用したいと思います。ただし、共有クラスを拡張するJavaクラスもいくつか作成する必要があります。
spring rooによって生成されたテストプロジェクトを使用して、maven-war-pluginを試してみたかったのです。私はすでにいくつかのことを試しましたが、まだ展開に問題があります。
戦争のみを使用する場合、コードがコンパイルされないため、Javaクラスを拡張できません。
<dependency>
<groupId>com.test.pizzashop</groupId>
<artifactId>PizzaShopCommons_WEB</artifactId>
<scope>compile</scope>
<version>0.1.0.BUILD-SNAPSHOT</version>
<type>war</type>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<overlays>
<overlay>
<groupId>com.test.pizzashop</groupId>
<artifactId>PizzaShopCommons</artifactId>
</overlay>
</overlays>
</configuration>
</plugin>
Javaクラスを拡張しなくても、libフォルダーに正しく存在するjarが見つからないため、Tomcat(mvn tomcat:run)が起動しません。
また、JavaクラスとSpring構成ファイル、およびすべての依存関係のみを含み、jarとしてパッケージ化されている2番目の共有プロジェクトを使用しようとしました。TomcatでメインのWebアプリを実行しても、例外が発生します
。org.springframework.beans.factory.BeanDefinitionStoreException:ServletContextリソース[/WEB-INF/spring/webmvc-config.xml]からXMLドキュメントを解析するIOException。ネストされた例外はFileNotFoundExceptionです:ServletContextリソースを開くことができませんでした[/WEB-INF/spring/webmvc-config.xml]このファイルwebmvc-config.xmlは、戦争の本来あるべき場所にあります(maven warプラグインによってコピーされます)。
<dependency>
<groupId>com.test.pizzashop</groupId>
<artifactId>PizzaShopCommons_WEB</artifactId>
<scope>compile</scope>
<version>0.1.0.BUILD-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.test.pizzashop</groupId>
<artifactId>PizzaShopCommons_SpringConf_Classes_Dependencies</artifactId>
<scope>compile</scope>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<overlays>
<overlay>
<groupId>com.test.pizzashop</groupId>
<artifactId>PizzaShopCommons_WEB</artifactId>
<excludes>
<exclude>*.java</exclude>
</excludes>
<excludes>
<exclude>*.jar</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
<!-- <executions> <execution> <phase>generate-resources</phase> </execution> </executions> -->
</plugin>
生成された戦争のファイル構造は次のようになります。
+---pizzashop-1.0.0-BUILD-SNAPSHOT
| +---images
| | add.png ...
| +---META-INF
| | | MANIFEST.MF
| | \---maven
| | \---com.test.pizzashop
| | \---PizzaShop
| | pom.properties
| | pom.xml
| +---styles
| | standard.css ...
| \---WEB-INF
| | web.xml
| +---classes
| | | builddef.lst ...
| | +---com
| | | \---test
| | | \---pizzashop
| | | +---domain
| | | | Pizza.class ...
| | | +---service
| | | | PizzaService.class ...
| | | \---web
| | | PizzaController.class ...
| | \---META-INF
| | | aop-ajc.xml
| | | persistence.xml
| | \---spring
| | applicationContext-security.xml
| | applicationContext.xml
| | database.properties
| +---i18n
| | application.properties ...
| +---layouts
| | default.jspx ...
| +---lib
| | antlr-2.7.6.jar ...
| +---spring
| | | root-context.xml
| | | webmvc-config.xml
| | \---appServlet
| | xx_servlet-context_xx.xml
| +---tags
| | | create.tagx ...
| \---views
| | dataAccessFailure.jspx ...
どうすればこれを実行できますか?1つの共有プロジェクト(1つのjarまたは戦争)だけでこれを達成する可能性はありますか?