Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
Maven 如何向WAR添加WSDL、XSD(可能还有其他文件)_Maven_War_Maven Plugin_Pom.xml - Fatal编程技术网

Maven 如何向WAR添加WSDL、XSD(可能还有其他文件)

Maven 如何向WAR添加WSDL、XSD(可能还有其他文件),maven,war,maven-plugin,pom.xml,Maven,War,Maven Plugin,Pom.xml,我有一个非常简单的pom.xml,如果在本地部署,它将生成一个完全工作的web服务(Tomcat 7)。这是它的部分: <build> <finalName>${artifact.id}</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <

我有一个非常简单的pom.xml,如果在本地部署,它将生成一个完全工作的web服务(Tomcat 7)。这是它的
部分:

  <build>
    <finalName>${artifact.id}</finalName>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-codegen-plugin</artifactId>
        <version>2.3.1</version>
        <executions>
          <execution>
            <id>generate-sources</id>
            <configuration>
              <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
              <wsdlOptions>
                <wsdlOption>
                  <wsdl>${basedir}/src/main/wsdl/mywebservice.wsdl</wsdl>
                  <extraargs>
                    <extraarg>-impl</extraarg>
                    <extraarg>-verbose</extraarg>
                  </extraargs>
                  <wsdlLocation>${basedir}/src/main/wsdl/mywebservice.wsdl</wsdlLocation>
                </wsdlOption>
              </wsdlOptions>
            </configuration>
            <goals>
              <goal>wsdl2java</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${basedir}/target/generated/src/main/java</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <file>${basedir}/src/main/wsdl/mywebservice.wsdl</file>
                  <type>wsdl</type>
                </artifact>
                <artifact>
                  <file>${basedir}/src/main/xsd/myschema.xsd</file>
                  <type>xsd</type>
                </artifact>
              </artifacts>
            </configuration>
          </execution>

        </executions>
      </plugin>

    </plugins>
  </build>

${artifact.id}
目标(如上所述),但它只将文件复制到我的本地(开发)
.m2
存储库,而不是WAR文件

如何将文件添加或附加到要部署的实际
.war
文件?

我解开了这个谜

如果Maven的另一个新手(加上CXF?)遇到此问题,请在此处发布答案:

事实证明,
attach工件
的执行是完全不需要的,而且是一次尝试

我所要做的就是在
部分的顶部添加以下内容:

<resources>
    <resource>
        <directory>src/main/wsdl</directory>
    </resource>
    <resource>
        <directory>src/main/xsd</directory>
    </resource>
</resources>

src/main/wsdl
src/main/xsd
就这些。Maven然后自动将这些目录中的所有文件放在
WEB-INF/classes/