0

こんにちは、複数のモジュールを含む Maven プロジェクトがあります。4 つのモジュールのうち、2 つは Web です。これが構造です。

MyProject
   |
   |__ api
   |
   |__ commons
   |
   |__ web_child
   |
   |__ web_main

web_mainモジュールはメインのモジュールであり、web_childモジュールも含めることができます。

web_child モジュール構造は

 web_child
     |
     |__ src/main/java //java action classes and all
     |__ src/main/resources
     |    |__ struts-default.xml
     |
     |__ WEB-INF
          |__ JSP Pages

web_main モジュール構造は

 web_main
     |
     |__ src/main/java //java action classes and all
     |__ src/main/resources
     |    |__ struts.xml
     |
     |__ WEB-INF
          |__ JSP Pages

モジュールは両方ともwarです。

web-mainはすべてのモジュールに依存します。web-childは最初の 2 つのモジュール (api と commons) に依存します。

struts.xml には、struts-default.xmlを含めています。

pom.xmlの web-childモジュールでは、WAR プラグインと JAR プラグインを使用しています。web-childモジュールは正常に動作しています。JAR プラグインは、モジュールの JAR を作成するために使用されます。しかし問題は、 JARに i を含めたくないということです。src/main/resources

web-childこれがモジュールpom.xmlの私のJARプラグイン です

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version> 
    <executions>
        <execution>
        <phase>package</phase>
         <goals>
            <goal>jar</goal>
          </goals>
          <configuration>
              <classifier>core</classifier>
               <excludes>
                  <exclude>src/main/resources</exclude>
                </excludes>
           </configuration>
           </execution>
    </executions>                        
    </plugin>

これにより、JAR が作成されます。この JAR は、web-mainモジュールの依存関係として追加しています。

web-main pom.xml 依存関係

<dependency>
    <groupId>${project.parent.groupId}</groupId>
    <artifactId>${project.parent.artifactId}-child</artifactId>
    <version>${project.parent.version}</version>
    <classifier>core</classifier>
</dependency>
<dependency>
    <groupId>${project.parent.groupId}</groupId>
    <artifactId>${project.parent.artifactId}-child</artifactId>
    <version>${project.parent.version}</version>
    <type>war</type>
</dependency>

1 つ目は JAR を取得し、2 つ目は war を取得します。したがって、web-child の主要なリソースはすべて WEB-INF クラスに含まれます。そして、WEB-INF/lib/web-child.jar 内のファイルと競合しています! ファイル。

では、src/main/resources を JAR から削除して、main-web でその JAR を取得するにはどうすればよいでしょうか?

:WARプラグイン内で次のことを試しました

<attachClasses>true</attachClasses>
<classesClassifier>core</classesClassifier>
<packagingExcludes>src/main/resources</packagingExcludes>
4

0 に答える 0