Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 如何在一个pom.xml-Maven中区分不同的wsdl位置_Java_Web Services_Maven_Wsdl_Maven 3 - Fatal编程技术网

Java 如何在一个pom.xml-Maven中区分不同的wsdl位置

Java 如何在一个pom.xml-Maven中区分不同的wsdl位置,java,web-services,maven,wsdl,maven-3,Java,Web Services,Maven,Wsdl,Maven 3,是否有可能在maven中区分wsdl Web服务的多个配置 我有一个应用程序,可以在测试、阶段和产品环境上运行。我必须使用一个Web服务。Web服务有3个不同的wsdl位置。对于测试、阶段和产品。 在maven中是否有一种方法可以说明,如果我想为prod构建应用程序,只需使用prod的webservice位置,也可以用于stage和test? 我有一个wsdl导入配置,它可以很好地用于单个非动态部分 <plugin> <groupId>org.jvnet.jax-ws-

是否有可能在maven中区分wsdl Web服务的多个配置

我有一个
应用程序
,可以在
测试、阶段和产品环境
上运行。我必须使用一个Web服务。Web服务有
3个不同的wsdl位置
。对于
测试、阶段和产品。

在maven中是否有一种方法可以说明,如果我想为prod构建应用程序,只需使用prod的webservice位置,也可以用于stage和test?

我有一个wsdl导入配置,它可以很好地用于单个非动态部分

<plugin>
 <groupId>org.jvnet.jax-ws-commons</groupId>
 <artifactId>jaxws-maven-plugin</artifactId>
 <version>2.3</version>
 <executions>
     <execution>
         <goals>
             <goal>wsimport</goal>
         </goals>
         <configuration>
             <wsdlFiles>
                 <wsdlFile>wsdlFile_live.wsdl</wsdlFile>
             </wsdlFiles>
             <vmArgs>
                 <vmArg>-Djavax.xml.accessExternalDTD=all</vmArg>
                 <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
             </vmArgs>
             <packageName>com.example.schema</packageName>
             <wsdlLocation>http://liveLocation/?wsdl</wsdlLocation>

         </configuration>
         <id>wsimport-generate-_live.wsdl</id>
         <phase>generate-sources</phase>
     </execution>
 </executions>
 <dependencies>
     <dependency>
         <groupId>javax.xml</groupId>
         <artifactId>webservices-api</artifactId>
         <version>2.0.1</version>
     </dependency>
 </dependencies>
 <configuration>
     <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
     <xnocompile>true</xnocompile>
     <verbose>true</verbose>
     <extension>true</extension>
     <catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
 </configuration>

org.jvnet.jax-ws-commons
jaxws-maven插件
2.3
wsimport
wsdlFile_live.wsdl
-Djavax.xml.accessExternalDTD=all
-Djavax.xml.accessExternalSchema=all
com.example.schema
http://liveLocation/?wsdl
wsimport-generate--u live.wsdl
生成源
javax.xml
webservicesapi
2.0.1
${project.build.directory}/generated sources/jaxws-wsimport
真的
真的
真的
${basedir}/src/jax-ws-catalog.xml

您可以使用环境变量存储wsdl文件并传递给maven系统属性。例如,假设在Linux上您想要访问环境变量MY_variable。可以在pom文件中使用系统属性

<properties>
...
<!-- Default value for my.variable can be defined here -->
<my.variable>foo</my.variable>
...

...
福
...
...
${my.variable}

在maven命令行上设置属性值:


mvn clean package-Dmy.variable=$MY_variable

在maven中创建概要文件是构建具有不同作用域的不同应用程序的一种可能性

<profiles>
    <profile>
        <id>prod</id>
        <build>
         ....
       </build>
    </profile>
    <profile>
        <id>test</id>
        <build>
            ....
       </build>
    </profile>  
</profiles>

戳
....
测试
....
在profile属性中,您可以设置依赖项资源插件配置等等

要构建特定的配置文件,您必须键入
mvn-p
,然后键入配置文件ID


在我的例子中,它看起来是这样的:
mvn-Ptest clean install
mvn-Pprod clean install

对我来说,必须多次构建相同的基础才能获得测试、阶段和产品,这听起来是个坏主意。为什么不从一个环境变量中选择正确的WSDL,告诉java是否获得开发WSDL、测试WSDL。。。或prod wsdl