我对maven非常新。 我正使用 wsdl2java 来获取 Java 文件, 然后创建我需要的罐子文件。 问题在于我的骨骼来自不同的来源, 最终我需要4个不同的罐子文件。
到目前为止,我试图先创建前两个罐子文件,然后再处理下两个罐子文件... 所以我在“建设”区块中创建了两个不同的“执行”区块; 每个“执行”区块下载了每个Wsdl文件,到目前为止都很好。以下插件:
org.codehaus.mojo axistools-maven-plugin
这样工作 : 它首先汇编所有生成的 Java 文件, 然后从所有文件中生成 jar 文件, 这意味着它只创建一个 jar 文件 。
我要求Wsdl2java在每一个“ 执行” 区块之后编译并创建罐子文件吗? 我可以得到两个不同的罐子文件, 每一个文件只和我下载在“ 执行” 区块中的 Wsdl 文件有关?
以下是 pom. xml 。 在此点, 生成的 jar 文件由以下文件生成的 Java 文件组成: 文件 1, 文件 2, 文件 3, 文件 4 和 文件 5 。
我要从文件1、文件2、文件3和文件4和文件5取出一个罐子。
如有任何帮助,将不胜感激。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.4</version>
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>prod</id>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<urls>
<url>https://file1.svc?wsdl</url>
<url>https://file2.svc?wsdl</url>
<url>https://file3.svc?wsdl</url>
</urls>
<allElements>true</allElements>
<wrapArrays>false</wrapArrays>
<testCases>false</testCases>
<serverSide>false</serverSide>
<typeMappingVersion>1.2</typeMappingVersion>
</configuration>
</execution>
<execution>
<id>sandbox</id>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<sourceDirectory>${basedir}/wsdl</sourceDirectory>
<useEmitter>true</useEmitter>
<wsdlFiles>
<wsdlFile>file4.wsdl</wsdlFile>
<wsdlFile>file5.wsdl</wsdlFile>
</wsdlFiles>
<allElements>true</allElements>
<wrapArrays>false</wrapArrays>
<testCases>false</testCases>
<serverSide>false</serverSide>
<typeMappingVersion>1.2</typeMappingVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
由于时间太长,我不得不编辑我原来的文章...
感谢您的答复。 我确实尝试了您的解答 。 正如您所知, “ 轴工具- maven- plutin” 和“ maven- compliler- plutin” 中包含“ maven- jar- plutin ” 和“ maven- jar- plutin ” 。 它首先从指定的 urls 中下载所有 wsdl 文件。 它创建了不同的输出目录; 但是, 在编译阶段, 它试图同时在所有输出目录中编辑所有 Java 文件; 因为 Java 文件是常见的 。 这些 wsdl 文件在编译时会给出“ 复制类” 错误 。
我们可以定义我们自己的自定义“maven-compiler-plutin”和“maven-jar-plutin”区块, 并添加“include”或“exclude”区块, 让 Maven知道要编译的文件和如何创建罐子文件, 但是由于“ axistols-maven- plutin” 首先运行自己的“ maven-compiler-plutin”, 它试图先编译所有 Java 文件, 并且仍然在 < / strong> 之前给出“ 复制类” 错误 < strong> 。 它查看我们的“ maven-compiler- plutin” 和“ mave- gar- plutin” 区块 。