如何在maven的一个构建块中创建不同的jar文件?

如何在maven的一个构建块中创建不同的jar文件?,maven,jar,pom.xml,Maven,Jar,Pom.xml,我有一个maven项目,它编译两个不同的项目,然后在此目录中创建类:${project.build.directory}/classes 其中${project.build.directory}指向pom.xml存在的目录 我使用不同“执行”块的maven-jar插件,使jar文件从每个项目的相关目录/类中提取出来。我是maven的新手,很难定义正确的“include”和“exclude”目录 这是我的类所驻留的结构: \目标\classes\com \目标\classes\com\micros

我有一个maven项目,它编译两个不同的项目,然后在此目录中创建类:${project.build.directory}/classes

其中${project.build.directory}指向pom.xml存在的目录

我使用不同“执行”块的maven-jar插件,使jar文件从每个项目的相关目录/类中提取出来。我是maven的新手,很难定义正确的“include”和“exclude”目录

这是我的类所驻留的结构:

\目标\classes\com

\目标\classes\com\microsoft

\target\classes\com\google

\目标\类别\组织

第一个jar文件需要从这些类中创建:

\目标\classes\com\microsoft

\目标\类别\组织

第二个jar需要从这些类中创建:

\target\classes\com\google

下面是“构建”块的一部分,其中包含用于创建这些JAR的“执行”块。第一个jar名为:msnprod,另一个jar名为:google。如您所见,我尝试了所有不同的组合来创建这些JAR,但没有一个成功——它们作为注释部分存在于下面的构建块中

谁能帮我一下吗?非常感谢您的帮助

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.2</version>
            <executions>
                <execution>
                    <id>msn-prod</id>
                    <goals><goal>jar</goal></goals> 
                    <phase>generate-resources</phase>
                    <configuration>
                        <classifier>msn-prod</classifier>    
                        <!-- <classesDirectory>${project.build.directory}/classes/com/microsoft</classesDirectory>
                        <includes>
                            <include>**/*.class</include>
                        </includes> 
                        <classesDirectory>${project.build.directory}/classes/org</classesDirectory>
                        <includes>
                            <include>**/*.class</include>
                        </includes>-->   
                        <classesDirectory>${project.build.directory}/classes</classesDirectory>
                        <!-- <includes>
                            <include>**/*.class</include>
                        </includes>-->                           
                        <!-- <excludes>
                            <exclude>**/com/google/*</exclude>
                        </excludes>-->                          
                        <!-- <excludes>
                            <exclude>**/google/*.class</exclude>
                        </excludes>-->                              
                        <includes>
                            <include>**/com/microsoft/*.class</include>
                            <include>**/org/*.class</include>
                        </includes>             
                        <finalName>${msn.prod}-${msn.api.version}</finalName>              
                    </configuration>
            </execution> 

            <execution>
                    <id>google</id>
                    <goals><goal>jar</goal></goals> 
                    <phase>generate-resources</phase>
                    <configuration>
                        <classifier>google</classifier>

                        <!-- <classesDirectory>${project.build.directory}/classes</classesDirectory>
                        <includes>
                            <include>**/com/google/*.class</include>
                        </includes>-->                          
                        <classesDirectory>${project.build.directory}/classes/com/google</classesDirectory>
                        <includes>
                            <include>**/*.class</include>
                        </includes>                                     
                        <finalName>${google}-${google.api.version}</finalName>              
                    </configuration>
            </execution>

        </executions>
    </plugin>

org.apache.maven.plugins
maven jar插件
2.3.2
msn产品
罐子
产生资源
msn产品
${project.build.directory}/classes
**/com/microsoft/*.class
**/org/*.class
${msn.prod}-${msn.api.version}
谷歌
罐子
产生资源
谷歌
${project.build.directory}/classes/com/google
**/*.类
${google}-${google.api.version}

您违反了Maven的最佳实践,即每个模块一个构建工件,因此遇到了麻烦。只要把它分解成多个项目,就很容易了