java - How to include rmic package jar in maven assembly -


i have multi-module maven project must have rmi stubs generated (to integrate legacy product can't use dynamic proxies). have configured rmic-maven-plugin rmic during compile phase, , package stubs jar during package phase.

<execution>         <id>rmic-process-classes</id>         <goals>           <goal>rmic</goal>         </goals>         <phase>compile</phase>         <configuration>           <keep>true</keep>           <!--outputdirectory>${project.build.outputdirectory}</outputdirectory-->           <includes>             <include>com.myimpl</include>           </includes>         </configuration>       </execution>       <execution>         <id>rmic-package</id>         <goals>           <goal>package</goal>         </goals>         <configuration>           <!--outputdirectory>${project.build.outputdirectory}</outputdirectory>           <finalname>broker-dl</finalname>           <classifier>${project.version}</classifier-->         </configuration>       </execution> 

i run issue after assembly created in '-dist' module, child module of parent exists create distribution archive. not include client jar generated rmic-package execution.

how configured assembly plugin include jar rmic plugin produces in package phase? tried adding <files. section after <modulesets>, when files section present, only files end in assembly, though moduleset section didn't exist.

      <modulesets>       <moduleset>           <useallreactorprojects>true</useallreactorprojects>           <includes>               <include>com:implmodule</include>            </includes>           <binaries>               <unpack>false</unpack>               <filemode>644</filemode>               <directorymode>755</directorymode>               <dependencysets>                 <dependencyset>                   <outputdirectory>lib</outputdirectory>                 </dependencyset>               </dependencysets>           </binaries>       </moduleset>         </modulesets>    <files>        <file>                       <outputdirectory>lib</outputdirectory>            <source>../implmodule/target/implmodule-${project.version}-client.jar</source>            <filemode>644</filemode>        </file>           </files> 

note: have read related question creating stub project seems impossible, since rmi server class stub generated needs part of main application jar, not part of stub jar, don't see how rmic rmi server in 1 module , yet javac in another.

i able solve problem myself switching using modulesets combination of filesets , dependencysets. filesets pick main jar root of assembly, , rmic client jar rmic-package goal lib directory. then, dependencyset pulls dependencies of main jar lib directory well.

<!-- include -dl jar created rmic-package goal in         lib part of assembly. necessary because          target vm not support dynamic rmi stubs,          stubs must deployed in assembly. -->    <filesets>        <fileset>            <directory>../{project}/target</directory>            <outputdirectory>.</outputdirectory>            <!-- put main jar in top level -->            <includes>                <include>*.jar</include>            </includes>            <!-- don't include rmic-built -dl jar @ top -->            <excludes>                <exclude>*-dl-*.jar</exclude>            </excludes>        </fileset>        <fileset>            <directory>../{project}/target</directory>            <outputdirectory>lib</outputdirectory>            <!-- put rmic-built -dl jar in lib dir -->            <includes>                <include>*-dl-*.jar</include>            </includes>        </fileset>    </filesets>    <dependencysets>        <dependencyset>            <!-- put dependencies in lib, usual -->            <useprojectartifact>false</useprojectartifact>            <outputdirectory>lib</outputdirectory>                         <excludes>                <!-- don't include main jar, @                      top level already. -->                <exclude>{groupid}:{artifact}</exclude>            </excludes>            <unpack>false</unpack>        </dependencyset>    </dependencysets> 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -