Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用复制到jar-Maven的特定于使用的xml创建多个jar_Java_Jar_Maven Plugin - Fatal编程技术网

Java 如何使用复制到jar-Maven的特定于使用的xml创建多个jar

Java 如何使用复制到jar-Maven的特定于使用的xml创建多个jar,java,jar,maven-plugin,Java,Jar,Maven Plugin,我正在尝试从ANT build迁移到Maven build设置,以实现非常简单的代码库设置: src>Java类 conf>META-INF>3个xml文件,即dbConnect-jboss.xml、dbConnect-weblogic.xml、dbConnect-ooc.xml 目标是创建3个罐子: project-jboss.jar、project-weblogic.jar、project-ooc.jar 其中每个jar将有META-INF/dbConnect.xml,相关conf/META

我正在尝试从ANT build迁移到Maven build设置,以实现非常简单的代码库设置:

src>Java类

conf>META-INF>3个xml文件,即dbConnect-jboss.xml、dbConnect-weblogic.xml、dbConnect-ooc.xml

目标是创建3个罐子:
project-jboss.jar、project-weblogic.jar、project-ooc.jar

其中每个jar将有
META-INF/dbConnect.xml
,相关
conf/META-INF/dbConnect xxx.xml
的副本

我试过使用[maven jar plugin+maven antrun plugin],但问题是maven antrun plugin只复制了一次,所以假设先创建project-jboss.jar,那么所有剩余的jar都将具有相同的dbConnect.xxx.xml

我需要找到一种方法——如何每次通过maven antrun插件调用dbConnect.xml文件的副本来创建相应的JAR


感谢所有在这里帮助我的人,感谢你的帮助。 我选择maven汇编插件来满足需要

以下片段将解释我的方法:

<pluginManagement>
        <plugins>
            <plugin>
                <!-- To suppress default JAR creation -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>default-jar</id>
                        <phase />
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <finalName>${project.artifactId}</finalName>
                    <useProjectArtifact>false</useProjectArtifact>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>create-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>

你好您能在问题中添加pom.xml的内容而不是放一个屏幕截图吗?它有助于复制内容,并试图更快地解决问题,而不是用手写所有内容。winky Face我尝试过——对SoF来说有点陌生——评论框建议我有很多代码,不允许我发帖——只需单击你的问题的
编辑
,并用pom.xml内容替换你的屏幕截图。
<assembly ....>
<id>jboss</id>
<formats>
    <format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
    <dependencySet>
        <!-- Avoid getting relevant dependencies included in JAR -->
        <includes>
            <include>com.vibrant:streamliner.reposerv</include>
        </includes>
        <useTransitiveDependencies>false</useTransitiveDependencies>
        <unpack>true</unpack>
        <unpackOptions>
            <excludes>
                <exclude>META-INF/**</exclude>
            </excludes>
        </unpackOptions>
    </dependencySet>
</dependencySets>
<files>
    <file>
        <source>${project.basedir}/config/META-INF/dbConnect-jboss.xml</source>
        <outputDirectory>META-INF</outputDirectory>
        <destName>dbConnect.xml</destName>
    </file>
</files>
<profile>
    <id>create-all-jars</id>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>pom-assembly-jboss.xml</descriptor>
                        <descriptor>pom-assembly-weblogic.xml</descriptor>
                        <descriptor>pom-assembly-ooc.xml</descriptor>
                    </descriptors>
                    <appendAssemblyId>true</appendAssemblyId>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>
mvn -P create-all-jars clean package